25

我尝试重命名集合的所有文档中的一个字段,使用

db.coll.update({},{ $rename: {'originField':'newField'} });

但只更改了一份文件,为什么?

4

3 回答 3

50

默认情况下,MongoDB 中的所有更新都是单数的。您必须在命令中添加第三个选项以进行:

db.coll.update({},{ $rename: {'originField':'newField'} }, {multi:true});

如果您使用的是 3.2 及更高版本,则可以使用updateMany()

db.coll.updateMany({}, {$rename: {'originField': "newField"}})
于 2013-03-27T00:15:33.990 回答
3
db.collectionname.update( { "field" : "oldvalue" }, { $set:{ "field" : "newvalue" } }, { multi : true } );
于 2017-01-18T17:57:45.180 回答
2

从 MongoDB 3.2 开始,您可以使用以下更短的语法:

db.coll.updateMany({}, {$rename: {'originField': "newField"}})

于 2018-06-28T02:54:17.797 回答