我想创建这样的代码:
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?
答案 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);