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

Aktualizujte pole hodnotou jiného pole v dokumentu

Zde jsou dobré a špatné zprávy.

Špatnou zprávou je, že AFAIK to nemůžete udělat jediným voláním update() – mongo nepodporuje odkazování na aktuální objekt v aktualizaci.

Dobrá zpráva je, že existují i ​​jiné způsoby, jak to udělat, např. můžete spustit cyklus forEach:

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

ForEach můžete spustit v admin shellu (příkaz 'mongo') nebo pomocí některých metod vašeho konkrétního ovladače (např. v PHP bych očekával, že bude fungovat s mongodb.execute(), jak je popsáno zde:http:/ /www.php.net/manual/en/mongodb.execute.php)



  1. Získání časového razítka z mongodb id

  2. Obrovské zpoždění při použití Celer + Redis

  3. Node Js:Úloha Redis se po dokončení úlohy nedokončuje

  4. Redis/Jedis žádný bod selhání a automatické převzetí služeb při selhání