コレクションのすべてのドキュメントで1つのフィールドの名前を変更してみます。
db.coll.update({},{ $rename: {'originField':'newField'} });
しかし、変更されるドキュメントは1つだけですが、なぜですか?
MongoDBのすべての更新は、デフォルトでは単一です。次のようにするには、コマンドに3番目のオプションを追加する必要があります。
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"}})