MongoDB:addToSet具有动态字段名称

时间:2016-10-09 05:39:34

标签: javascript mongodb

我需要使用变量来使用字段名称。我该怎么做?

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 个答案:

答案 0 :(得分:2)

只需将代码更新为

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

它将创建动态密钥名称。