我想在 Mongo 的多行数组中添加几个项目。我怎样才能做到这一点?
我想从这个开始:
{'x': 'h', arr: [1,2,3] }
{'x': 'h', arr: [1,3] }
并添加数组 [6,8],其中 x 等于 'h':
{'x': 'h', arr: [1,2,3,6,8] }
{'x': 'h', arr: [1,6,8] }
我想在 Mongo 的多行数组中添加几个项目。我怎样才能做到这一点?
我想从这个开始:
{'x': 'h', arr: [1,2,3] }
{'x': 'h', arr: [1,3] }
并添加数组 [6,8],其中 x 等于 'h':
{'x': 'h', arr: [1,2,3,6,8] }
{'x': 'h', arr: [1,6,8] }
我认为您正在寻找的是 $pushAll 运算符。看看这里:
http://docs.mongodb.org/manual/reference/operator/pushAll/#pushall
如果您有一个名为 MongoDB 的集合yourCollection
和一个名为 的记录x
,您将使用以下内容更新子数组:
db.test.update( {"name":"x"}, {"$pushAll" : {arr : [1, 2, 3]}} )
这里重要的关键字是$pushAll。您可以使用它将项目添加到单个记录属性内的数组中。
最简单的方法是使用传统的更新操作
db.urColl.update(
{ x: "h" },
{ $push: { arr: { $each: [6,8] } } },
{ multi: true }
);`
如果你想更新多条记录,重要的是true
作为第四个参数传递给更新函数:
db.test.update( {"name": "x"}, {"$pushAll": {"arr": [1, 2, 3]}}, false, true)
根据 update() 的 MongoDB shell 语法:
db.collection.update( criteria, objNew, upsert, multi )
$pushAll
2.4 版后已弃用:改用$push
操作符$each
。
运算符将指定的$pushAll
值附加到数组中。
运算符具有以下$pushAll
形式:
{ $pushAll: { <field>: [ <value1>, <value2>, ... ] } }
如果您指定单个值,$pushAll
将表现为$push
.