我是node.js的新手,因此这是一个非常微不足道的问题。
我有以下几行代码:
(A)定义模型
var mongoose = require('mongoose');
var genreSchema = mongoose.Schema({
name:{
type: String,
required: true
}
});
执行模型删除操作
module.exports.deleteGenre = function (id, callback) {
console.log("Deleting genre: "+ id);
var condition = {"_id": id};
Genre.deleteOne(condition, callback);
};
我在函数中引用了以下link。
但是,当我运行它时,会抛出以下错误:
TypeError: Genre.deleteOne is not a function
如果我用delete()替换deleteOne()函数,则代码可以正常工作。 请告知,我哪里出错了。
答案 0 :(得分:7)
如用户3344977在评论中所述,函数deleteOne
和deleteMany
在mongoose中不再存在4. API文档不是最新的。
我刚检查了mongoose(4.4)的源代码,并且没有这些函数的单一跟踪。
您可以改为使用Model.findOneAndRemove(condition, options, callback)
或Model.findByIdAndRemove(id, options, callback)
。