无法在Mongo Shell中的find()方法中使用变量作为字段名称查找值

时间:2013-09-05 07:50:56

标签: mongo-shell

我在mongo shell中执行了以下命令:

db.perscoll.insert({CT:{English:{genre:[{name:varGenre}]}}})

现在,我想查找集合中是否存在“英语”类型,或者不使用find(),它将返回0(false)或1(true)。

db.perscoll.find({'CT.English.genre.name':varGenre}).count();

上面的命令返回1(true),但是当我尝试使用如下所述的变量执行相同的命令时,它返回0.

var eType = 'CT';
var lang = 'English';
var varGenre = 'Action';
var gnrNameChk = {}; 
gnrNameChk[eType+'.'+lang+'.genre.name'] = ''; 
print(gnrNameChk);
db.perscoll.find({gnrNameChk:varGenre}).count();

可能是什么问题?如何解决这个问题?我没有办法解决这个问题。

1 个答案:

答案 0 :(得分:0)

尝试以下方法:       var eType ='CT';       var lang ='English';       var varGenre ='Action';      var gnrNameChk = {};       gnrNameChk [eType +'。'+ lang +'。genre.name'] = varGenere;       打印(gnrNameChk);      db.perscoll.find(gnrNameChk).Count之间();

希望能帮到你!!!