MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Aggiorna il campo con il valore di un altro campo nel documento

Buone e cattive notizie qui.

La cattiva notizia è che AFAIK non puoi farlo con una singola chiamata update() - mongo non supporta il riferimento all'oggetto corrente in aggiornamento.

La buona notizia è che ci sono altri modi per farlo, ad es. puoi eseguire un ciclo forEach:

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

Puoi eseguire forEach nella shell di amministrazione (comando 'mongo') o tramite alcuni dei metodi del tuo driver specifico (ad esempio in PHP mi aspetto che funzioni con mongodb.execute() come descritto qui:http:/ /www.php.net/manual/en/mongodb.execute.php)