node.js - 使用 mongo 生成动态字段(无聚合)
问题描述
我正在使用 updateOne() 查询来更新我的 Db 中的某些内容。
根据函数返回的值,我将更新不同的字段。所以我尝试动态生成字段以避免多次编写相同的函数。
我的想法是以这种方式将字段存储在模板字符串中:
const expField: string = `teams.${newEvent.data.team}.${newEvent.data.position}`;
然后我用它创建我的查询:
query = {
$push: {
evtsGame: newEvent
},
$set: {
expField: goalValue.exp,
updatedAt: moment().toISOString()
},
$inc: {
scoreField: goalValue.score
}
};
然而,在测试查询后,我意识到它创建了一个新字段'expField'
而不是类似'teams.team1.attacker'
如何动态生成我的姓名字段?
解决方案
感谢@Sergio Tulentsev 帮助我解决问题,这里是解决方案:
query = {
$push: {
evtsGame: newEvent
},
$set: {
[expField]: goalValue.exp,
updatedAt: moment().toISOString()
},
$inc: {
[scoreField]: goalValue.score
}
};
推荐阅读
- php - 在 ElFinder 中仅正确创建 png 文件的缩略图
- samsung-smart-tv - 多台电视和单个 NAS
- c# - 如何为存储过程的结果更新实体框架自动生成的代码
- java - 如何为 JAXM 客户端获取和设置“消息传递提供程序”以调用异步 SOAP API?
- python - 在同级目录中进行相对导入时遇到问题
- c# - Kendo.Filterable 不包含“操作员”的定义
- ios - 快速访问字典键的值
- perl - 从一种日期时间格式转换为另一种日期时间格式
- javascript - 如果对象属性相同,则将数组中的两个对象合并为一个对象,并将唯一属性转换为数组
- javascript - 表 tbody 未正确附加