我正在尝试构建一个NodeJS / mongodb应用程序,当我读取包含(XYZ > 10)
OR (XYZ < 15)
的请求时。我想在旅途中生成一个查询字符串。然后在某个Mongodb Collection中搜索。以下内容适用:
db.event.find( { 'data.XYZ': {'$lt':15} } ) // This works.
但我想这样做:
var qstr1="{ \'data.XYZ\': {\'$lt\':15} // I would generate this possibly
db.event.find(qstr1)
当我尝试将查询条件作为字符串传递给db.collection.find()
时,它会返回整个集合。
我正在使用mongoskin
申请。然而,即使通过Mongo Shell,这也不起作用。
有办法做到这一点吗?
答案 0 :(得分:6)
您最终生成查询对象,而不是字符串,因此以编程方式构建查询对象:
var query = {};
var field = 'data.XYZ';
var operator = {};
operator['$lt'] = 15;
query[field] = operator;
db.event.find(query);
如果您确实希望将字符串保存为字符串,则可以使用JSON.parse
将字符串解析为查询对象:
var qstr1="{ \"data.XYZ\": {\"$lt\":15} }";
var query = JSON.parse(qstr1);
请注意JSON.parse
要求密钥用双引号(不是单引号)包围,并且在shell中不可用。
答案 1 :(得分:0)
FB.init({ appId: '224188011327825', status: true, cookie: true });