Tengo una colección de personas:
{ name: Juan, age: 21 }y ahora, quiero lograr lo siguiente:
{ name: Juan, age: 21, name_reply:Juan }He intentado usar:
db.people.updateMany( {"name_reply":null}, [{$set:{name_reply:"$name"}}] );pero aparece lo siguiente. Objeto de tipo esperado pero matriz encontrada.
¿Cómo podría actualizar un campo mongo usando el valor de otro campo?
db.collection.update({ "name_reply": null }, [ { "$set": { "name_reply": "$name" } } ], { multi: true })Pero, de hecho, esto es solo para la versión de mongodb> = 4.2 donde puede proporcionar una canalización de agregación a la consulta de actualización
para versiones anteriores, puede consultar esta respuesta aquí
algo como esto podría hacer el trabajo muy probablemente:
db.collection.find({"name_reply":null}).snapshot().forEach( function (doc) { doc.name_reply = doc.name; db.collection.save(doc); } );