问题描述
我想增加一个位于 mongodb 数据库子对象中的变量。
这是我的代码:
let collection = mongoose.db("wars").collection("servers")
collection.findOneAndUpdate({"id": message.guild.id},{$inc: {"starship.$.": 1}})
在“starship”对象中还有一些其他字段,所有字段都以整数作为值。
我需要做的是从变量更新字段。
示例:
let example = "test"
let collection = mongoose.db("wars").collection("servers")
collection.findOneAndUpdate({"id": message.guild.id},{$inc: {"starship.$." + example: 1}})
但是“+”会出错,因为我无法从变量访问该字段。
我也试过 starship.$.${example}
,但没有用。
我该怎么办?
感谢提供帮助的建议,对于英语不好很抱歉!
解决方法
您可以创建一个新对象并将其放入 MongoDB 查询中,例如:
let example = "test";
let newObject={};
newObject["starship.$." + example] = 1;
let collection = mongoose.db("wars").collection("servers");
collection.findOneAndUpdate({"id": message.guild.id},{$inc: newObject});