【发布时间】:2012-06-11 03:07:20
【问题描述】:
我有一个数字数组:
readersNum : {type: [Number], default: []},
我想将 indexVariable 中的值增加 1。
这行得通:
Posts.update({"readerID":readerID},{$inc:{"readersNum.0":1}},{upsert:true,safe:true},
function(err){
console.log(err);
});
但问题是我的值不在特定(常量)索引中,它是一个变量。假设索引变量是 indexVariable 而不是 0,我应该如何增加它?
我也试过这个:
Posts.findOne({"readerID":readerID },['readersNum'],function(err, readerID){
readerID.readersNum[indexVariable] = readerID.readersNum[indexVariable]+1;
try {
Posts.save(readerID,function(err) {
if (err) {
console.log("ERROR while saving reader num: " + err);
}
else {
console.log('saved reader num successfully');
}
});
}
catch(e){
console.log("ERROR while saving reader num: " + e);
}
});
执行上面的代码会在控制台中打印更改的值并“成功保存阅读器编号”,但数据库中的值保持不变! 如果有人能告诉我我做错了什么,我将不胜感激。 谢谢!
【问题讨论】: