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

Mise à jour de MongoDB. Essayer de définir un champ à partir d'une propriété d'un autre

Essayez le code suivant :

db.collection.find(your_querry).forEach(function(doc) {
  doc.field1 = doc.field2.length;
  db.collection.save(doc);
});

Vous pouvez utiliser your_querry pour ne sélectionner qu'une partie de la collection d'origine, effectuez une mise à jour. Si vous souhaitez traiter une collection entière, utilisez your_querry = {} .

Si vous voulez que toutes les opérations soient atomiques, utilisez update au lieu de save :

db.collection.find( your_querry, { field2: 1 } ).forEach(function(doc) {
  db.collection.update({ _id: doc._id },{ $set: { field1: doc.field2.length } } );
});