我有一个典型的模式和模型:
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
email: String,
password: String,
profile: {
name: String,
surname: String,
photo: String
},
stats: {
lastLogin: { type: Date, default: Date.now },
loginCount: Number,
lastIP: String
},
source: String,
deleted: Boolean,
dateCreated: { type: Date, default: Date.now }
});
mongoose.model('User', userSchema);
当我执行此更新时,它仅在我定义回调时才有效,否则它只会执行但数据库中的值不会更改:
User.update({email:'foo@bar.com'}, {$inc: {'stats.loginCount': 1}});
这有效:
User.update({email:'foo@bar.com'}, {$inc: {'stats.loginCount': 1}}, function() {});
这是一个错误吗?如果需要回调,我没有在文档中看到,但是要求这个很奇怪……我想我在这里遗漏了一些东西。
注意:我正在通过电子邮件匹配测试建议,我在 NodeJS v0.8.17 中使用猫鼬 v3.5.4 和简单的 Express v3.0.6 设置。
提前致谢。