0

我有一个名为 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}}})

并返回无法使用部分(a.a1 的a)遍历元素的错误消息,那么我应该如何将元素添加到数组中?

4

1 回答 1

1

mongodb positional/$ 位置 $ 运算符标识数组中要更新的元素,而无需显式指定元素在数组中的位置。要从读取操作投影或返回数组元素,请参阅 $ 投影运算符。

db.test.update({ 
    _id: ObjectId('...'),
    "a.id": 1 
}, { 
    $push: { 
        "a.$.a1": { x: 99, y: 99 } 
    } 
})
于 2016-11-14T08:05:30.660 回答