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

Operação de atualização em massa do Mongoose


Você pode fazer isso, mas o problema é que, ao acessar o objeto de coleção subjacente do driver base, as mesmas precauções não são tomadas com os métodos do modelo mongoose implementados.

Todos os métodos de modelo envolvem os métodos subjacentes com outros recursos, mas o mais comum é garantir que uma conexão de banco de dados esteja aberta antes de tentar acessar o método. Isso garante que um Db instância está presente e uma Collection() objeto pode ser obtido

Depois de usar o .collection acessador no modelo, então você está fazendo tudo sozinho:
mongoose.connection.on('open',function(err,conn) {

   // now it's safe to use

   // { .. } Other code
   var bulk = Person.collection.initializeOrderedBulkOp();
   bulk.find(query).update(update);
   bulk.execute(callback)

});

Ou algum outro método que basicamente garante que a conexão foi realmente estabelecida.

Quanto ao suporte nativo para métodos de API em massa sem mergulhar no nível de driver subjacente, sim, isso está sendo trabalhado no momento em que escrevo. Mas você ainda pode implementá-lo sozinho e não quebrará o código enquanto estiver se conectando a uma instância do servidor MongoDB 2.6 ou superior.