Yo trate de cambiar el nombre de un campo en todos los documentos de una colección, con

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

pero sólo un documento cambiado, ¿por qué ?

por defecto las actualizaciones están en singular, es necesario agregar ,{multi:true} como un tercer parámetro
gracias esta es la respuesta
usted puede agregar el comentario como una respuesta a cerrar ?
Posibles duplicados de MongoDB: actualización de cada documento en un campo

OriginalEl autor JuanPablo | 2013-03-26

3 Comentarios

  1. 43

    Todas las actualizaciones en MongoDB son, por defecto, en singular. Debe agregar una tercera opción para el comando para hacer:

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

    Si usted está usando 3.2 y encima puede utilizar updateMany():

    db.coll.updateMany({}, {$rename: {'originField': "newField"}})
    Aquí está la referencia de MongoDB documentación docs.mongodb.org/manual/applications/update/…
    , {multi:true} hizo el truco, gracias
    Desde MongoDB 3.2 también puede usar updateMany.

    OriginalEl autor Sammaye

  2. 3
    db.collectionname.update( { "field" : "oldvalue" }, { $set:{ "field" : "newvalue" } }, { multi : true } );
    Cómo hacerlo para oldvalue+»cadena»

    OriginalEl autor abdulH

  3. 2

    Desde MongoDB 3.2, puede utilizar este corto sintaxis:

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

    OriginalEl autor Josh

Dejar respuesta

Please enter your comment!
Please enter your name here