gpt4 book ai didi

node.js - 使用 mongoose mongodb nodejs 通过索引变量增加数组中的值

转载 作者:可可西里 更新时间:2023-11-01 10:01:27 26 4
gpt4 key购买 nike

我有一个数字数组:

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);
}
});

执行上面的代码会在控制台打印更改后的值和“成功保存阅读器编号”,但数据库中的值保持不变!如果有人能告诉我我做错了什么,我将不胜感激。谢谢!

最佳答案

假设您知道索引,您可以这样做:

var update = {};

update['readersNum.' + index] = 1; // update now has property like `readersNum.3`

Posts.update({"readerID":readerID},{$inc: update},{upsert:true,safe:true}, function(err){ console.log(err); });

关于node.js - 使用 mongoose mongodb nodejs 通过索引变量增加数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10243572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com