webentwicklung-frage-antwort-db.com.de

db.collection.update () alle Dokumente

Ich versuche, ein Feld in allen Dokumenten einer Sammlung umzubenennen, mit 

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

aber nur ein Dokument wird geändert, warum? 

17
JuanPablo

Alle Updates in MongoDB sind standardmäßig einmalig. Sie müssen Ihrem Befehl eine dritte Option hinzufügen, um

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

Wenn Sie 3.2 oder höher verwenden, können Sie updateMany() verwenden: 

db.coll.updateMany({}, {$rename: {'originField': "newField"}})
42
Sammaye
db.collectionname.update( { "field" : "oldvalue" }, { $set:{ "field" : "newvalue" } }, { multi : true } );
3
abdulH

Seit MongoDB 3.2 können Sie diese kürzere Syntax verwenden:

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

2
Josh