gpt4 book ai didi

javascript - 如何使用变量字段名增加mongodb字段?

转载 作者:行者123 更新时间:2023-12-03 06:05:18 26 4
gpt4 key购买 nike

所以,关于我正在尝试创建的内容的一些背景知识。我正在尝试构建一个投票应用程序,其中 MongoDb 数据库存储选项和每个选项的计数器,以检查人们为每个选项投票的次数。我实现的数据结构如下所示。

_id:"57dfecfa3832360f46e183c2"
options:"iea, aoegboae, aoeugoa, ougr, gege"
options_counter:Object
0:0
1:0
2:0
3:0
4:0
__proto__:Object
title:"hr"

每个数字 [0,1,2,3,4] 代表一个选项,冒号后面的数字代表每个选项的计数器。我更新所需计数器的函数如下所示

   var fieldToIncrement = db.collection('polls').options_counter.field;
db.collection('polls').findOneAndUpdate(
{_id: user_id},
{$inc: {fieldToIncrement: 1}},
{upsert:false},
{returnNewDocument: true}
).toArray(function(err, doc){
if(err){
throw new Error(err);
}if(doc){
console.log(doc);
//callback(null, doc);
}
});

但是,使用 fieldToIncrement 变量会返回错误,指出找不到未定义的属性字段。变量字段包含指定 options_counter 对象的特定键的数字,该对象需要加 1。我已将 options_counter 嵌入到原始文档中。我的问题是如何设置语法,以便 MongoDb 可以在 options_counter 对象中找到要更新的特定键值对,并将该计数器加 1?

最佳答案

看起来“options_counter”是一个嵌入文档,为此,您的 var fieldToIncrement 必须类似于 options_count.0。我在你的问题中看不到这一点。

请分享您定义 fieldToIncrement 的代码,现在似乎未定义,正如您提到的错误中所述:“但是,使用 fieldToIncrement 变量会返回一个错误,指出无法找到未定义的属性字段。”

关于javascript - 如何使用变量字段名增加mongodb字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39575242/

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