我想这样做:
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'
不会编译。
答案 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){ ...