我正在开发一个REST API的后端。它使用MongoDB作为数据库。我使用的是MongoDB 5.3.3。我想根据API请求删除项目集合,但收到了上述错误消息:弃用警告:collection. remove已弃用。请改用deleteOne、deleteMany或bulkWrite如何完全删除集合?
ubof19bj1#
代替:模型.remove({});用途:模型.deleteMany({});
2ekbmq322#
当我想删除一个特定的集合时,对我有效的方法是:
mongoose.connection.dropCollection(specificCollection.name) // or you could use the collection's name exactly such as 'user'
mongoose.connection.dropCollection()方法接受一个集合的确切名称,该集合可能是在创建模式时定义的。您在代码中定义的特定模型可能如下所示:
mongoose.connection.dropCollection()
mongoose.model('User', UserSchema)
请注意,它不区分大小写,'User'与'user'相同。
'User'
'user'
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); }); });
vybvopom4#
Mongoose的新版本中会出现此问题,如果要使用Model.remove()方法,则应将当前Mongoose版本更改为“mongoose”:“^5.10.14”或更低版本。有关详细信息,请访问 Deprecation Warnings。
4条答案
按热度按时间ubof19bj1#
代替:模型.remove({});用途:模型.deleteMany({});
2ekbmq322#
当我想删除一个特定的集合时,对我有效的方法是:
mongoose.connection.dropCollection()
方法接受一个集合的确切名称,该集合可能是在创建模式时定义的。您在代码中定义的特定模型可能如下所示:
请注意,它不区分大小写,
'User'
与'user'
相同。2uluyalo3#
相应地使用deleteOne或deleteMany。我使用了**deleteOne()而不是remove()**函数从mongodb集合的delete API中删除项目。它对我很有效。
vybvopom4#
Mongoose的新版本中会出现此问题,如果要使用Model.remove()方法,则应将当前Mongoose版本更改为“mongoose”:“^5.10.14”或更低版本。有关详细信息,请访问 Deprecation Warnings。