mongodb findOneAndUpdate со значением flatten $, установленным с позицией индекса, не вставляется как массив - PullRequest
0 голосов
/ 20 мая 2018

Я пишу общий код, который будет выполнять добавление и обновление как элементарную операцию, поэтому использовал findOneAndUpdate.Мои сглаженные данные с массивом вставляются как объект вместо массива.Ниже приведены подробности.

db.test.findOneAndUpdate({"saleId" : "7d55acf0-5bc2-11e8-b3e5-c51df4c55083"},{$set:{"price.priceTier.0.unitSold": 1,}}, {upsert:true})
db.test.find()
{ "_id" : ObjectId("5b0173fbcd90c934727269ac"), "saleId" : "7d55acf0-5bc2-11e8-b3e5-c51df4c55083", "price" : { "priceTier" : { "0" : { "unitSold" : 1 } } } }

Как я могу убедиться, что {$set:{"price.priceTier.0.unitSold": 1,}} следует добавить в виде массива, как показано ниже?

{ "_id" : ObjectId("5b0173fbcd90c934727269ac"), "saleId" : "7d55acf0-5bc2-11e8-b3e5-c51df4c55083", "price" : { "priceTier" : [{ "unitSold" : 1 } ]} }

Поскольку я пытаюсь написать общий код и использую *Модуль 1009 * npm для сглаживания входных данных для преобразования в запрос mongodb, поэтому я стараюсь не менять свой запрос, если это возможно.Пожалуйста, помогите.

...