(node:15893)弃用警告:collection.remove已弃用,请改用deleteOne、deleteMany或bulkWrite

avwztpqn  于 2023-02-15  发布在  Node.js
关注(0)|答案(4)|浏览(147)

我正在开发一个REST API的后端。它使用MongoDB作为数据库。我使用的是MongoDB 5.3.3。
我想根据API请求删除项目集合,但收到了上述错误消息:
弃用警告:collection. remove已弃用。请改用deleteOne、deleteMany或bulkWrite
如何完全删除集合?

ubof19bj

ubof19bj1#

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

2ekbmq32

2ekbmq322#

当我想删除一个特定的集合时,对我有效的方法是:

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'相同。

2uluyalo

2uluyalo3#

相应地使用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);   
  }); 
});
vybvopom

vybvopom4#

Mongoose的新版本中会出现此问题,如果要使用Model.remove()方法,则应将当前Mongoose版本更改为“mongoose”:“^5.10.14”或更低版本。有关详细信息,请访问 Deprecation Warnings

相关问题