0
私はこのスキーマを持つの名前を持っています。私がやろうとしています何MongoDb:レコードを更新して配列にプッシュします。 'addresses.0'と 'addresses.0.insertupdate'を同時に更新できません
{
name: "A1",
addresses :
[
{
add1 : "a1",
add2 : "a2",
insertupdate:[
{
"mode" : "i" ,
"user" : "abcd"
}
]
}
,
{
add1 : "a3",
add2 : "a4",
insertupdate:[
{
"mode" : "i",
"user" : "pqrs"
}
]
}
],
insertupdate:[
{
"mode" : "i",
"user" : "pqrs"
}
]
}
:
私はADD2 = "A5" & addresses.insertupdate内部記録などのinsertUpdateを押すなどの記録ADD1 = "A1" を更新します。私が得た
db.names.update({name:"A1",addresses.add1:"a1"},
{
$set : {
addresses.$ :
{
"add2":"a5"
}
},
$push : {
"insertupdate" : {"mode":"u","user":"xyz"},
"addresses.$.insertupdate" : {"mode":"u","user":"xyz"}
}
}
);
エラー:
が同じ 時間
で 'addresses.0' と 'addresses.0.insertupdate' を更新できませんが、私が試した何
編集:
このコマンドは正常に終了しました。しかし、私は自分の価値観を設定することはできません。つまり、同時にポジション演算子を使用して&プッシュを使用する方法が必要です。
db.names.update(
{"name":"A1", "addresses.add1":"a1"},
{$push:{
"insertupdate":{"mode":"u","user":"xyz"},
"addresses.$.insertupdate":{"mode":"u","user":"xyz"}
}
})