私はかなり複雑なデータ構造をmongoDBに持っています。文書は、私が埋め込まれた文書のそれぞれが、私が持っているこのマルチレベルの埋め込みドキュメントを更新
{
"id" : 0,
"price" : 0.9918
"order" : {
"id":0,
"exec":
[{
"quantity" : 1,
"price" : 1.0
},
{
"quantity" : 1,
"price" : 1.01
}
]
}
のように見えるように埋め込まれた文書のexGroup配列に文書の配列を追加したいと思い、この
{
"id" : 0,
"basket" : [
{
"price" : 0.9918,
"id" : 2500,
"exGroup" : [
{
"exgId" : 0,
"ePrice" : 0.9918
}
{
"exgId" : 1,
"ePrice" : 0.9918
}
]
}, ]}
のような少しのように見えますこのようになります更新クエリでこれを実行しようとしました:
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:+ 0000 00.000")、 "basket.assetId":2500、 "basket.exGroup.exgId":0
基本的に私の問題は、私は方法がわからないということですマルチレベルアレイのリーフにある文書を正しくアドレス指定する(すなわち、 doc.array.doc.array.doc)
exgroup権限に何かを押し込むだけですか? –
はい。もし誰かが私にそれを正しく行う方法を教えたら、私は残りをすることができると思う。 –