我试图像Discord服务器一样设置银行帐户,这是我的问题:
我有这个架构:
var ladderboardSchema = new Schema({
name: String,
victories: {type: Number, default: 0},
bank: {type: Number, default: 5000},
date: {type: Date, default: Date.now}
});
其次是这个模型:
var ladderboardPlayer = mongoose.model('Ladder', ladderboardSchema);
正如你所看到的,我银行的基本价值应该是5000,当我的函数被调用时,我希望我的银行值增加该玩家的指定金额!
function setMoney(playerName, amount){
var query = {name: playerName};
var update = {$inc: {bank:amount} };
var options = {upsert: true, new: true, setDefaultsOnInsert: true};
ladderboardPlayer.findOneAndUpdate(query, update, options, function(err, doc){
if(!err) console.error('updated!');
});
}
例如,假设我运行setMoney('John', 500);
,MongoDB将返回我:
{ "_id" : ObjectId("57a67d1e874dfe1eb4163888"), "name" : "John", "bank" : 500, "__v" : 0, "victories" : 0, "date" : ISODate("2016-08-07T00:13:18.192Z") }
它应该返回5500但是我有点丢失,因为我已经尝试了很多解决方案,即使'new'和'setDefaultsOnInsert'设置为true