mongoose场如何自动增量
我有一个像下面的mongoose模式:
var userSchema = new Shema({ userName: {type: String, default: "ABC"}, lastLoginTime: {type: Date, default: Date.now}, loginTimes: {type: Number, default: 1}, ...... });
而且我想更新lastLoginTime,并且在用户每次login时都让loginTimes加1。
很容易更新lastLoginTime ,只是给它一个新的时间string。
但是我怎样才能使loginTimes加一次。
那么你总是可以使用$inc
操作符的forms“更新”
Model.update( { _id: docId }, { "$set": { "lastLoginTime": new Date() }, "$inc": { "loginTimes": 1 } }, function(err,numaffected) { } )
这是MongoDB一般的首选方式,因为每个实际更新都有最小的stream量发送。
另请参见.findByIdAndUpdate()
方法,因为这可能仅限于一个文档。
另一种方法是使用“预保存”钩子非常笨拙,但是当你不需要像这种更新validation这样的事情时,检索和修改文档似乎很麻烦。