MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Atualizar campo com o valor de outro campo no documento


Boas e más notícias aqui.

A má notícia é que o AFAIK não pode ser feito com uma única chamada update() - o mongo não suporta a referência ao objeto atual na atualização.

A boa notícia é que existem outras maneiras de fazer isso, por exemplo. você pode executar um loop forEach:
db.item.find(conditions...).snapshot().forEach( function (doc) {
  doc.field1 = doc.field2; 
  db.item.save(doc); 
});

Você pode executar forEach no shell de administração (comando 'mongo'), ou através de alguns dos métodos do seu driver específico (por exemplo, em PHP, espero que funcione com mongodb.execute() conforme descrito aqui:http:/ /www.php.net/manual/en/mongodb.execute.php)