sql >> Base de Datos >  >> NoSQL >> MongoDB

Actualizar campo con el valor de otro campo en el documento

Buenas y malas noticias aquí.

La mala noticia es que AFAIK no puede hacerlo con una sola llamada de actualización():mongo no admite la referencia al objeto actual en la actualización.

La buena noticia es que hay otras formas de hacerlo, p. puede ejecutar un bucle forEach:

db.item.find(conditions...).snapshot().forEach( function (doc) {
  doc.field1 = doc.field2; 
  db.item.save(doc); 
});

Puede ejecutar forEach en el shell de administración (comando 'mongo'), o a través de algunos de los métodos de su controlador específico (por ejemplo, en PHP espero que funcione con mongodb.execute() como se describe aquí:http:/ /www.php.net/manual/en/mongodb.execute.php)