DJ0*_*073 2 mongoose mongodb node.js mongoskin
我正在尝试构建一个NodeJS/mongodb应用程序,当我读取包含(XYZ > 10)OR 的请求时(XYZ < 15).我想在旅途中生成一个查询字符串.然后在某个Mongodb Collection中搜索.以下将有效:
db.event.find( { 'data.XYZ': {'$lt':15} } ) // This works.
Run Code Online (Sandbox Code Playgroud)
但我想这样做:
var qstr1="{ \'data.XYZ\': {\'$lt\':15} // I would generate this possibly
db.event.find(qstr1)
Run Code Online (Sandbox Code Playgroud)
当我尝试将查询条件作为字符串传递给db.collection.find()它时,返回整个集合.
我正在使用mongoskin该应用程序.然而,即使通过Mongo Shell,这也不起作用.
有没有办法做到这一点?
您最终生成的是查询对象,而不是字符串,因此以编程方式构建查询对象:
var query = {};
var field = 'data.XYZ';
var operator = {};
operator['$lt'] = 15;
query[field] = operator;
db.event.find(query);
Run Code Online (Sandbox Code Playgroud)
如果您确实希望将字符串保存为字符串,则可以使用JSON.parse以下命令将字符串解析为查询对象:
var qstr1="{ \"data.XYZ\": {\"$lt\":15} }";
var query = JSON.parse(qstr1);
Run Code Online (Sandbox Code Playgroud)
请注意,JSON.parse要求密钥由双引号(不是单引号)包围,并且在shell中不可用.
| 归档时间: |
|
| 查看次数: |
3711 次 |
| 最近记录: |