Ich versuche, ein Feld in allen Dokumenten einer Sammlung umbenennen, mitdb.collection.update() alle Dokumente
db.coll.update({},{ $rename: {'originField':'newField'} });
aber nur ein Dokument geändert wird, warum?
Ich versuche, ein Feld in allen Dokumenten einer Sammlung umbenennen, mitdb.collection.update() alle Dokumente
db.coll.update({},{ $rename: {'originField':'newField'} });
aber nur ein Dokument geändert wird, warum?
Alle Updates in MongoDB sind standardmäßig singulär. Sie müssen eine dritte Option, um Ihren Befehl hinzufügen zu machen:
db.coll.update({},{ $rename: {'originField':'newField'} }, {multi:true});
Oder, wie @totymedli wies darauf hin, wenn Sie 3.2 verwenden und über Sie updateMany()
verwenden können: MongoDB: update every document on one field
Hier ist der Verweis von MongoDB Dokumentation http : //docs.mongodb.org/manual/applications/update/#update-multiple-documents –
, {multi: true} hat den Trick gemacht, danke – Andy
Seit MongoDB 3.2 können Sie auch [updateMany' verwenden] (https://stackoverflow.com/a/9038593/1494454). – totymedli
db.collectionname.update({ "field" : "oldvalue" }, { $set:{ "field" : "newvalue" } }, { multi : true });
Wie es für Oldvalue + "einige Zeichenfolge" –
standardmäßig Updates singular, müssen Sie ', {multi: true}' als dritten Parameter hinzufügen – Sammaye
@Sammaye Danke, das ist die Antwort – JuanPablo
@Sammaye Sie können den Kommentar wie eine Antwort hinzufügen, um zu schließen? – JuanPablo