如何以编程方式查询mongodb?

时间:2015-04-15 09:45:42

标签: json mongodb meteor

我想创建这样的代码:

var result = Attributes.find({
    attribute_name : {
    $exist : true,
    $in : [1]
 }
});

但是以编程方式,所以我停止这样的代码:

var genQuery = '{ "' + by + '" : { "$exists" : true, "$in" : [' + data + ']} }';
var result = Attributes.find(genQuery);

但我得到错误最大调用堆栈

因为JSON.parse(genQuery)的结果

{ _id: { '$exists': true, '$in': [ 1 ] } }

如何以编程方式查询mongodb?

1 个答案:

答案 0 :(得分:1)

您声明的genQuery变量是一个String,但您无法在find()函数中将字符串作为选择器或修饰符传递。 您应该创建一个Object以使其工作:

var genQuery = {};
//use this notation to declare a new object key depending on a variable
genQuery[by] = {
  $exists: true, 
  $in: [1]
};

var result = Attributes.find(genQuery);