私は典型的なスキーマとモデルを持っています:
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() {});
これはバグですか?コールバックが必要かどうかはドキュメントに記載されていませんが、これを必要とするのは奇妙です...ここに何かが欠けていると思います。
注: 私はテスト提案のために電子メールで照合しています。単純な Express v3.0.6 セットアップで NodeJS v0.8.17 で mongoose v3.5.4 を使用しています。
前もって感謝します。