我尝试重命名集合的所有文档中的一个字段,使用
db.coll.update({},{ $rename: {'originField':'newField'} });
但只更改了一份文件,为什么?
默认情况下,MongoDB 中的所有更新都是单数的。您必须在命令中添加第三个选项以进行:
db.coll.update({},{ $rename: {'originField':'newField'} }, {multi:true});
如果您使用的是 3.2 及更高版本,则可以使用updateMany()
:
db.coll.updateMany({}, {$rename: {'originField': "newField"}})
db.collectionname.update( { "field" : "oldvalue" }, { $set:{ "field" : "newvalue" } }, { multi : true } );
从 MongoDB 3.2 开始,您可以使用以下更短的语法:
db.coll.updateMany({}, {$rename: {'originField': "newField"}})