mongodb / meteor collection检查当field是变量时是否存在subdocument字段

时间:2015-07-15 22:14:15

标签: javascript mongodb meteor

我正在尝试使用以下内容

collection.find({"myField."+variable : {$exists: true})

但显然这不起作用,因为集合不带字符串。相反,我尝试在JSON中构建一个完全查询字符串,但不能正确解析,因为我只是在搜索字段名而不是整个对象

var qry = '{"myField.'+variable+'"}'; //no go

我也尝试过流星集合字段逻辑

var qry = 'myField.'+variable; 
collection.find({}, {fields: {qry: 1}})

无济于事。我知道查询可以采用JSON对象,但我不知道如何编写它。

2 个答案:

答案 0 :(得分:2)

尝试一下:

var selector = {};
selector["myField." + variable] = {$exists: true};
Collection.find(selector);

答案 1 :(得分:1)

这可以使用括号表示法来实现

var fieldQuery = {};
fieldQuery["myField"+variable] = {$exists: true};

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors#Bracket_notation