25

コレクションのすべてのドキュメントで1つのフィールドの名前を変更してみます。

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

しかし、変更されるドキュメントは1つだけですが、なぜですか?

4

3 に答える 3

50

MongoDBのすべての更新は、デフォルトでは単一です。次のようにするには、コマンドに3番目のオプションを追加する必要があります。

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 に答える