(节点:15893)不建议使用警告:不建议使用collection.remove。请改用deleteOne,deleteMany或bulkWrite

时间:2018-11-04 11:02:47

标签: node.js mongodb

我正在为REST API开发后端。它使用MongoDB作为数据库。 我正在使用mongodb v:^ 5.3.3。

我想根据API请求删除项目集合,但是收到了以上错误消息:

DeprecationWarning: collection.remove is deprecated. Use deleteOne, deleteMany, or bulkWrite instead

如何完全删除收藏集?

3 个答案:

答案 0 :(得分:1)

代替:Model.remove({}); 用途:Model.deleteMany({});

答案 1 :(得分:0)

当我想删除特定收藏集时,对我有用的是:

mongoose.connection.dropCollection(specificCollection.name)
// or you could use the collection's name exactly such as 'user'

mongoose.connection.dropCollection()方法使用您在创建架构时可能定义的集合的确切名称。

可能,您在代码中的某个位置定义的特定模型如下:

mongoose.model('User', UserSchema)

请注意,它不区分大小写,'User''user'相同。

答案 2 :(得分:0)

相应地使用deleteOne或deleteMany。 我使用了 deleteOne()而不是 remove()函数从mongodb集合的delete api中删除项目。它对我有用。

app.delete('/todo/:item', function(req, res){   
  Todo.find({item: req.params.item.replace(/\-/g, " ")}).deleteOne(function(err, data){
    if(err) throw err;
      res.json(data);   
  }); 
});