Luk*_*nis 127 document mongodb nosql
我惊讶地发现以下示例代码仅更新单个文档:
> db.test.save({"_id":1, "foo":"bar"});
> db.test.save({"_id":2, "foo":"bar"});
> db.test.update({"foo":"bar"}, {"$set":{"test":"success!"}});
> db.test.find({"test":"success!"}).count();
1
Run Code Online (Sandbox Code Playgroud)
我知道我可以循环并不断更新,直到它们全部改变,但这似乎非常低效.有没有更好的办法?
mdi*_*olf 211
最近添加了多个更新,因此仅在开发版本(1.1.3)中提供.在shell中,您通过传递true
第四个参数来执行多重更新update()
,其中第三个参数是upsert参数:
db.test.update({foo: "bar"}, {$set: {test: "success!"}}, false, true);
Run Code Online (Sandbox Code Playgroud)
对于mongodb 2.2+的版本,您需要设置选项multi true以一次更新多个文档.
db.test.update({foo: "bar"}, {$set: {test: "success!"}}, {multi: true})
Run Code Online (Sandbox Code Playgroud)
对于mongodb 3.2+的版本,您还可以使用新方法updateMany()
一次更新多个文档,而无需单独的multi
选项.
db.test.updateMany({foo: "bar"}, {$set: {test: "success!"}})
Run Code Online (Sandbox Code Playgroud)
use*_*525 32
自V2.2起更新,更新函数采用以下形式:
db.collection.updateMany(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ]
}
)
Run Code Online (Sandbox Code Playgroud)
所选答案不再适用.
https://docs.mongodb.com/manual/reference/method/db.collection.update/
Kar*_*ngh 14
对于Mongo版本> 2.2,添加一个字段multi并将其设置为true
db.Collection.update({query},
{$set: {field1: "f1", field2: "f2"}},
{multi: true })
Run Code Online (Sandbox Code Playgroud)
我用更好的界面创建了一种方法.
db.collection.find({ ... }).update({ ... })
- 多次更新db.collection.find({ ... }).replace({ ... })
- 单次更换db.collection.find({ ... }).upsert({ ... })
- 单个插入db.collection.find({ ... }).remove()
- 多删除您还可以对更新应用限制,跳过,排序,并通过预先链接将其删除.
如果您有兴趣,请查看Mongo-Hacker
要更新整个集合,
db.getCollection('collection_name').update({},
{$set: {"field1" : "value1", "field2" : "value2", "field3" : "value3"}},
{multi: true })
Run Code Online (Sandbox Code Playgroud)
小智 5
在 MongoDB 客户端中,键入:
db.Collection.updateMany({}, $set: {field1: 'field1', field2: 'field2'})
Run Code Online (Sandbox Code Playgroud)
3.2 版的新功能
参数::
{}: select all records updated
Run Code Online (Sandbox Code Playgroud)
multi
未采用关键字参数
归档时间: |
|
查看次数: |
162259 次 |
最近记录: |