MongoDB:使用动态字段名的addToSet

4
我需要使用一个变量来代表某个字段的名称,我该怎么做?
let variableName = 'cars';
Collection.update(
    { _id: id },
    {
        $addToSet: {
            variableName: {
                foo: bar
            }
        }
    }
);

在这个例子中,有效地处理应该像这样进行:
Collection.update(
    { _id: id },
    {
        $addToSet: {
            cars: {
                foo: bar
            }
        }
    }
);

但我需要通过程序来实现。

类似的事情如下:

var fieldName = 'user';
Collection.find({ _id: id, fieldName + '.language': lang });

这该怎么做才是正确的呢?
1个回答

6

把你的代码更新到

let variableName = 'cars';
Collection.update(
    { _id: id },
    {
        $addToSet: {
            [variableName]: {
                foo: bar
            }
        }
    }
);

它将创建动态的键名。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接