我在mongoDB中有一個相當複雜的數據結構。該文件看起來有點像這樣更新多級嵌入式文檔
{
"id" : 0,
"basket" : [
{
"price" : 0.9918,
"id" : 2500,
"exGroup" : [
{
"exgId" : 0,
"ePrice" : 0.9918
}
{
"exgId" : 1,
"ePrice" : 0.9918
}
]
}, ]}
我想補充的文檔的數組嵌入文檔的exGroup陣列,使每個嵌入的文件看起來像這樣
{
"id" : 0,
"price" : 0.9918
"order" : {
"id":0,
"exec":
[{
"quantity" : 1,
"price" : 1.0
},
{
"quantity" : 1,
"price" : 1.01
}
]
}
我有試圖用一個更新查詢,看起來像這樣做:
db.fund.update(
{
"id": 0,
"basket.id": 2500,
"basket.exGroup.exgId": 0,
"basket.exGroup.order": {"$exists" : false}
},
{
"$set":
{
"basket.exGroup.$.order" :
{
"id":0,
"exec":
[{
"quantity":1,
"price":0.9978
}]
}
}
}
)
很不幸,這給我的錯誤「fundId」:0, 「日期」:ISODate ( 「2016-11-21T11:00:00.000 + 0000」), 「basket.assetId」:2500年, 「basket.exGroup.exgId」:0
從根本上說我的問題是,我不知道如何正確地處理位於多級數組的葉子上的文檔(即, doc.array.doc.array.doc)
你想只是推擠到exgroup權利? –
是的。如果有人告訴我如何正確地做到這一點,我想我可以做其他 –