我可以在查询中使用变量代替键名吗?

时间:2014-03-19 18:55:04

标签: javascript mongoose

我想这样做:

customers.findOneAndUpdate({'name':data.tenant,data.contentType+'.name':data.name},{data.contentType+'.$.archived':true},function(err,data2){

但是这给了我data.contentType点的编译错误。

SyntaxError: Unexpected token .

如果我要将'files.name'作为单个字符串进行操作,那么它可以正常工作,但data.contentType+'.name'不会编译。

1 个答案:

答案 0 :(得分:1)

你必须为那个

使用括号表示法
var obj  = {name : data.tenant},
    obj2 = {};

obj[data.contentType+'.name'] = data.name;
obj2[data.contentType+'.$.archived'] = true;

customers.findOneAndUpdate(obj, obj2, function(err,data2){ ...