sql >> Databáze >  >> NoSQL >> MongoDB

Aktualizace MongoDB. Pokus o nastavení jednoho pole z vlastnosti jiného

Zkuste následující kód:

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

Můžete použít your_querry chcete-li vybrat pouze část původní kolekce, proveďte aktualizaci. Chcete-li zpracovat celou kolekci, použijte your_querry = {} .

Pokud chcete, aby všechny operace byly atomické, použijte update místo save :

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


  1. MongoDB Number Field se nevloží ani neaktualizuje s číslem, které zadávám

  2. Mongo URI s vlastnoručně podepsaným certifikátem

  3. Proč se mi zobrazují hlavičky Nelze nastavit poté, co jsou odeslány chybě klienta v Nodejs?

  4. Rails a caching, je snadné přepínat mezi memcache a redis?