provo rinominare un campo in tutti i documenti di una raccolta, condb.collection.update() tutti i documenti
db.coll.update({},{ $rename: {'originField':'newField'} });
ma solo un documento viene modificato, perché?
provo rinominare un campo in tutti i documenti di una raccolta, condb.collection.update() tutti i documenti
db.coll.update({},{ $rename: {'originField':'newField'} });
ma solo un documento viene modificato, perché?
Tutti gli aggiornamenti in MongoDB sono, per impostazione predefinita, singolari. È necessario aggiungere una terza opzione al comando di fare:
db.coll.update({},{ $rename: {'originField':'newField'} }, {multi:true});
O, come @totymedli sottolineato, se si utilizza 3.2 e superiori è possibile utilizzare updateMany()
: MongoDB: update every document on one field
Ecco il riferimento da http di documentazione MongoDB : //docs.mongodb.org/manual/applications/update/#update-multiple-documents –
, {multi: true} ha fatto il trucco, grazie – Andy
Dal momento che MongoDB 3.2 è anche possibile [utilizzare 'updateMany'] (https://stackoverflow.com/a/9038593/1494454). – totymedli
db.collectionname.update({ "field" : "oldvalue" }, { $set:{ "field" : "newvalue" } }, { multi : true });
Come farlo per oldvalue + "some string" –
dagli aggiornamenti di default sono singolare, è necessario aggiungere ', {multi: true}' come terzo parametro – Sammaye
@Sammaye grazie questa è la risposta – JuanPablo
@Sammaye è possibile aggiungere il commento come una risposta per chiudere? – JuanPablo