FBFriendModel.find({
id: 333
}, function (err, docs) {
docs.remove(); //Remove all the documents that match!
});
O exposto acima não parece funcionar. Os registros ainda estão lá.
Alguém pode consertar?
FBFriendModel.find({
id: 333
}, function (err, docs) {
docs.remove(); //Remove all the documents that match!
});
O exposto acima não parece funcionar. Os registros ainda estão lá.
Alguém pode consertar?
Se você não quiser repetir, tente FBFriendModel.find({ id:333 }).remove( callback );
ouFBFriendModel.find({ id:333 }).remove().exec();
mongoose.model.find
devolve uma consulta , que tem uma remove
função .
A atualização para o Mongoose v5.5.3 - remove()
agora está obsoleta. Use deleteOne()
, deleteMany()
oufindOneAndDelete() instead.
.exec()
no entanto, isso não acontece. É.exec()
necessário, existem efeitos colaterais em usá-lo ou não?ATUALIZAÇÃO: versão Mongoose (5.5.3)
remove () foi descontinuado e você pode usar deleteOne (), deleteMany () ou bulkWrite ().
A partir de
"mongoose": ">=2.7.1"
que você pode remover o documento diretamente com o.remove()
método em vez de encontrar o documento e, em seguida, removê-lo o que me parece mais eficiente e fácil de manter.Consultar exemplo:
ATUALIZAR:
No mangusto
3.8.1
, existem vários métodos que permitem remover diretamente um documento, como:remove
findByIdAndRemove
findOneAndRemove
Consulte os documentos da API mangusto para obter mais informações.
fonte
remove(query)
potencialmente pode esvaziar toda a sua coleção se você passar acidentalmentequery = {}
. Por esse motivo, prefirofindOneAndRemove(query)
se estiver removendo apenas um documento.Model.remove({ _id: 'whatever' }).exec().then(...)
docs
é uma variedade de documentos. então não tem ummongooseModel.remove()
método.Você pode iterar e remover cada documento da matriz separadamente.
Ou - já que parece que você está encontrando os documentos por um (provavelmente) ID único - use em
findOne
vez defind
.fonte
Isso para mim é o melhor da versão 3.8.1:
E isso requer apenas uma chamada de banco de dados. Use isso, pois você não realiza nenhuma
remove
ação pior para a pesquisa e remoção.fonte
pre 'remove'
ações, ele funciona bem.Simplesmente faça
fonte
mongoose.model.find()
retorna um objeto de consulta que também tem umaremove()
função.Você também pode usar
mongoose.model.findOne()
se quiser remover apenas um documento exclusivo.Caso contrário, você pode seguir a abordagem tradicional, bem como onde primeiro recuperou o documento e depois remove.
A seguir, são apresentadas as formas do
model
objeto que você pode executar para remover os documentos:yourModelObj.findByIdAndRemove(id, options, callback)
yourModelObj.remove(conditions, callback);
fonte
remove()
foi descontinuado. UsedeleteOne()
,deleteMany()
oubulkWrite()
.O código que eu uso
fonte
(node:9132) DeprecationWarning: collection.remove is deprecated. Use deleteOne, deleteMany, or bulkWrite instead.
Para generalizar você pode usar:
Outra maneira de conseguir isso é:
fonte
Cuidado com o findOne e remova-o!
O código acima remove TODOS os usuários nomeados 'Alice', em vez do primeiro .
A propósito, prefiro remover documentos como este:
Ou forneça um retorno de chamada e omita o exec ()
fonte
Ref: http://mongoosejs.com/docs/api.html#model_Model.remove
fonte
Se você estiver procurando apenas um objeto a ser removido, poderá usar
Neste exemplo, o Mongoose será excluído com base na correspondência req.params.id.
fonte
.remove()
funciona como.find()
:fonte
Prefiro a notação de promessa, onde você precisa, por exemplo
fonte
Para remover documento, prefiro usar
Model.remove(conditions, [callback])
Consulte a documentação da API para remover: -
http://mongoosejs.com/docs/api.html#model_Model.remove
Nesse caso, o código será: -
Se você deseja remover documentos sem aguardar uma resposta do MongoDB, não transmita um retorno de chamada, será necessário chamar exec na Consulta retornada
fonte
Você pode simplesmente usar a consulta diretamente na função remover, portanto:
fonte
Você sempre pode usar a função interna do Mongoose:
fonte
Atualização:
.remove()
está obsoleta, mas isso ainda funciona para versões mais antigasfonte
usando o método remove () que você pode remover.
fonte
Isso funcionou para mim, apenas tente o seguinte:
fonte
Model.remove
está obsoletoDe acordo com a resposta de Samyak Jain, eu uso o Async Await
fonte
Eu realmente gosto desse padrão em aplicativos Express / Mongoose assíncronos / aguardados:
fonte
fonte