gpt4 book ai didi

Javascript:如何通过指定字符串中的字段来创建对象?

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

我正在尝试更新 MongoDB 文档中的值。该文档有很多字段,但我只想根据我在 UI 中更改的字段指定其中的几个字段。

var monthField='calendar.m'+month+'.result';
var triField='calendar.t'+trimester+'.result';
var yearField="calendar.year.result";

Objective.update({_id:{$in:objective.parents}},{
$inc:
{
yearField:transaction.value,
monthField:transaction.value,
triField:transaction.value
}},
{multi:true, upsert:true}
)

不幸的是,上面的代码没有将 yearFieldmonthFieldtriField“评估”为它们的字符串值,而是尝试更新为如果文档中存在这些字段。

我知道我可以找到文档,更改值,然后将它们一一保存,但是有什么方法可以完成我想做的事情吗?在一个更新行中完成它要好得多。

最佳答案

由于您使用的是 node.js,因此可以使用 computed property names , 只需将名称括在方括号中即可:

var monthField='calendar.m'+month+'.result';
var triField='calendar.t'+trimester+'.result';
var yearField="calendar.year.result";

Objective.update({_id:{$in:objective.parents}},{
$inc:
{
[yearField]:transaction.value,
[monthField]:transaction.value,
[triField]:transaction.value
}},
{multi:true, upsert:true}
)

此语法已添加到 ES2015 规范中,虽然尚未普遍存在,但在 node.js 中得到支持。

关于Javascript:如何通过指定字符串中的字段来创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39915912/

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