更新不是函数mongoose

时间:2016-01-28 21:51:19

标签: mongodb mongoose

我正在尝试使用Mongoose更新文档。但是不断收到错误更新不是函数...

我在Mongoose网站上添加了一个示例,但这也不起作用。

var query = {firstName: "borne"};
Staff.update(query, { firstName: 'jason borne' }, null, function (err, numberAffected, raw) {}

我的架构如下所示,它使用导出,以便我可以在客户端传递Staff模式。保存工作正常。

var mongoose = require('mongoose'),
    Schema = mongoose.Schema;

var StaffSchema = new Schema({
  firstName: String,
  surname: String,
  address: {addressLine1: String, addressLine2: String, town: String, county: String, postcode: String},
  telephoneNo: Number,
  mobileNo: Number,
  email: { type: String, lowercase: true },
  active: Boolean,

});

module.exports = mongoose.model('Staff', StaffSchema);

如上所述,保存工作及以下是我创建的服务

angular.module('xxx')
  .factory('staffActionService', function staffActionService ($location, $http, User, Staff, $cookieStore) {
    return {
      createStaff : function(staff, callback) {
        var cb = callback || angular.noop;
        return Staff.save(staff,
          function(data) {
            return cb(staff);
          },
          function(err) {
            return cb(err);
          }.bind(this)).$promise;
      },
      updateStaff: function(staff, callback) {
        var cb = callback || angular.noop;

        Staff.findOne({firstName: "borne"}, function (err, staff) {
          console.log(staff);


        });

我正在使用findOne来看看它是否会起作用但是没有乐趣。最终的代码在客户端

文档不太好。

希望有人可以协助

1 个答案:

答案 0 :(得分:1)

我不确定您为什么会收到特定的错误消息,但您的查询对我来说有点偏差。例如,您在此处替换整个文档,并且您将不必要地将null值传递给选项。

以下是我将如何撰写您的查询:

Staff.update({firstName: 'borne'}, {$set: {firstName: 'jason borne'}}, function (err, raw) {});