Mongoose.js - TypeError:Model.deleteOne不是函数

时间:2017-03-15 00:09:25

标签: node.js mongoose typeerror

我是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()函数,则代码可以正常工作。 请告知,我哪里出错了。

1 个答案:

答案 0 :(得分:7)

如用户3344977在评论中所述,函数deleteOnedeleteMany在mongoose中不再存在4. API文档不是最新的。

我刚检查了mongoose(4.4)的源代码,并且没有这些函数的单一跟踪。

您可以改为使用Model.findOneAndRemove(condition, options, callback)Model.findByIdAndRemove(id, options, callback)