MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mettre à jour le champ avec la valeur d'un autre champ dans le document

Bonnes et mauvaises nouvelles ici.

La mauvaise nouvelle est que, autant que je sache, vous ne pouvez pas le faire avec un seul appel update() - mongo ne prend pas en charge la référence à l'objet actuel dans la mise à jour.

La bonne nouvelle est qu'il existe d'autres façons de le faire, par ex. vous pouvez exécuter une boucle forEach :

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

Vous pouvez exécuter forEach dans le shell d'administration (commande 'mongo') ou via certaines des méthodes de votre pilote spécifique (par exemple, en PHP, je m'attendrais à ce qu'il fonctionne avec mongodb.execute() comme décrit ici :http:// /www.php.net/manual/en/mongodb.execute.php)