У меня есть следующий документMongoDB upsert неудачу
{
"_id" : ObjectId("56d2f6e83b6c835ebf12de33"),
"name" : "john",
"age" : 50,
"places" : [
"a",
"b",
"c"
],
"orders" : [
{
"_id" : 1,
"ordernumber" : 1,
"price" : 100,
"quantity" : 2
},
{
"_id" : 2,
"ordernumber" : "2",
"price" : 1400.0000000000000000,
"qty" : 10.0000000000000000
},
{
"_id" : 1.0000000000000000,
"ordernumber" : "2",
"price" : 1400.0000000000000000,
"qty" : 1.0000000000000000
},
{
"_id" : "1",
"ordernumber" : "2",
"price" : 1400.0000000000000000,
"qty" : 1.0000000000000000
}
]
}
выдавший следующее обновление вставить новый поддокумент, а не просто обновление document.Is что-то не так с запросом или же upsert работает по-другому? Я пытался путем добавления/удаления id поддокумента, но он все равно не работает. Что я пытаюсь сделать, так это добавить поддокумент заказа для основного документа с именем «john», и если порядок действительно существует, он обновляется.
db.mx1.update(
{"name":"john"},
{
"$addToSet":{
"orders":
{
"_id":"1",
"ordernumber":"2",
"price":1400,
"qty":1
}
}
},
{"upsert":"true"}
);