我正在尝试使用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来看看它是否会起作用但是没有乐趣。最终的代码在客户端
文档不太好。
希望有人可以协助
答案 0 :(得分:1)
我不确定您为什么会收到特定的错误消息,但您的查询对我来说有点偏差。例如,您在此处替换整个文档,并且您将不必要地将null值传递给选项。
以下是我将如何撰写您的查询:
Staff.update({firstName: 'borne'}, {$set: {firstName: 'jason borne'}}, function (err, raw) {});