这是我的模特:
var UserSchema = new Schema({
username: { type: String, unique: true, index: true },
url: { type: String },
name: { type: String },
github_id: { type: Number },
avatar_url: { type: String },
location: { type: String },
email: { type: String },
blog: { type: String },
public_repos: { type: Number },
public_gists: { type: Number },
last_github_sync: { type: Date },
created_at: { type: Date, default: Date.now }
});
我尝试使用findOneAndUpdate
函数更新我的文档:
不起作用:
User.findOneAndUpdate({ github_id: 1 }, { last_github_sync: new Date() }, {});
不起作用:
User.findOneAndUpdate({ github_id: 1 }, { last_github_sync: new Date() });
使用:
User.findOneAndUpdate({ github_id: 1 }, { last_github_sync: new Date() }, {}, function (err, numberAffected, raw) { });
我的意思是我应该绑定回调函数以使更新操作有效但我不需要那个回调函数,我的代码有什么问题?
答案 0 :(得分:16)
请参阅findOneAndUpdate
documentation中的示例:
A.findOneAndUpdate(conditions, update, options, callback) // executes
A.findOneAndUpdate(conditions, update, options) // returns Query
A.findOneAndUpdate(conditions, update, callback) // executes
A.findOneAndUpdate(conditions, update) // returns Query
A.findOneAndUpdate() // returns Query
如果您不提供回调,则会返回Query
对象,您必须在其上调用exec()
以执行更新。