如何使用变量字段名增加mongodb字段
How to increment mongodb fields using variable field name?
关于我要创建的东西的一些背景知识。我试图建立一个投票的应用程序,其中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变量返回一个错误,说找不到未定义的属性字段。变量字段包含指定需要加1的options_counter对象的特定键的数字。我在原始文档中嵌入了options_counter。我的问题是如何设置语法,以便MongoDb可以在options_counter对象中找到特定的键值对进行更新,并将该计数器增加1?
它看起来像"options_counter"是一个嵌入式文档,为此你的var fieldToIncrement必须是类似options_count.0的东西。从你的问题中我看不出这一点。
请分享你的代码,你定义fieldToIncrement,现在似乎是未定义的,也在你提到的错误中指出:"然而,使用fieldToIncrement变量返回一个错误,说不能找到未定义的属性字段。"
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- 使用jQuery增加输入字段值
- 需要在EXTJ的时间字段中显示07:00、15:00、23:00(增加8小时)
- 超链接以在单击时下载文件,并为每个下载增加一个字段
- 使用jquery和php在数据库中手动增加一个字段
- 增加HTML/CSS/JS中输入字段的大小
- 如何在php中动态地增加选择框选项和字段
- 使用jQuery增加输入字段的值
- 如何使用变量字段名增加mongodb字段
- 如何在输入字段名称中间增加输入字段名称
- 使用Vue JS复制输入字段,增加索引
- 如何使用javascript或jquery或ajax在php中增加字段数量,而无需重新加载整个页面
- 使用 Javascript 增加/减少输入字段的值
- 增加了密码字段的形式不张贴
- 在输入字段中自动增加HTML表单id