将元素压入数组
push elements into array
我有一个名为 test 的集合,如下所示 json:
{
'_id':ObjetcId("..."),
'a':[
{
id:1,
a1:[{x:1,y:1},{x:10,y:11},{x:10,y:12}],
flag:1
},
{
id:2
a1:[{x:1,y:1},{x:10,y:11},{x:10,y:12}],
flag:0
},
]
}
现在我想将另一个 ({x:99,y:99})
元素推入 a.a1
,条件是 a.id=1
,我尝试了命令:
db.test.update({'_id':ObjectId('...')},{"$push":{"a.a1":{x:99,y:99}}})
和return报错不能使用a.a1的a部分遍历元素,请问如何将元素添加到数组中?
mongodb positional/$
位置 $ 运算符标识数组中要更新的元素,而无需显式指定元素在数组中的位置。要投影或 return 来自读取操作的数组元素,请参阅 $ 投影运算符。
db.test.update({
_id: ObjectId('...'),
"a.id": 1
}, {
$push: {
"a.$.a1": { x: 99, y: 99 }
}
})
我有一个名为 test 的集合,如下所示 json:
{
'_id':ObjetcId("..."),
'a':[
{
id:1,
a1:[{x:1,y:1},{x:10,y:11},{x:10,y:12}],
flag:1
},
{
id:2
a1:[{x:1,y:1},{x:10,y:11},{x:10,y:12}],
flag:0
},
]
}
现在我想将另一个 ({x:99,y:99})
元素推入 a.a1
,条件是 a.id=1
,我尝试了命令:
db.test.update({'_id':ObjectId('...')},{"$push":{"a.a1":{x:99,y:99}}})
和return报错不能使用a.a1的a部分遍历元素,请问如何将元素添加到数组中?
mongodb positional/$ 位置 $ 运算符标识数组中要更新的元素,而无需显式指定元素在数组中的位置。要投影或 return 来自读取操作的数组元素,请参阅 $ 投影运算符。
db.test.update({
_id: ObjectId('...'),
"a.id": 1
}, {
$push: {
"a.$.a1": { x: 99, y: 99 }
}
})