Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将查询条件传递到Node.js/Mongodb中生成查询字符串的db.collection.find_Node.js_Mongodb_Mongoose_Mongoskin - Fatal编程技术网

将查询条件传递到Node.js/Mongodb中生成查询字符串的db.collection.find

将查询条件传递到Node.js/Mongodb中生成查询字符串的db.collection.find,node.js,mongodb,mongoose,mongoskin,Node.js,Mongodb,Mongoose,Mongoskin,我正在尝试构建一个NodeJS/mongodb应用程序,当我读取一个包含(XYZ>10)或(XYZ

我正在尝试构建一个NodeJS/mongodb应用程序,当我读取一个包含
(XYZ>10)
(XYZ<15)
的请求时。我想在运行中生成一个查询字符串。然后在某个Mongodb集合中进行搜索。以下工作将起作用:

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,这也不起作用


有办法做到这一点吗

您最终生成的是一个查询对象,而不是字符串,因此以编程方式构建查询对象:

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中不可用。

JohnnyHK,感谢您的回复!!我会试试看,然后告诉你。query[field]=运算符是什么意思?在哪里可以找到有关“查询”对象的更多文档?我可以使用上述机制构建复杂的查询吗。很抱歉问了这么多问题,我是Javascript/Mongodb等人的新手。@AJ0073
query
operator
只是普通的Javascript对象,所以它们可以像您喜欢的那样复杂
query[field]=operator
表示向名为
field
的值的
query
对象添加一个字段,并将其作为值分配给
operator
对象。感谢您的解释!!:)
create json sting as
    { "specilities.specility_name":"cosmetic","specilities.countries
    .country_code":"91","specilities.countries.states.state_name":"maharashtra","spe
    cilities.countries.states.cities.city_name":"mumbai","specilities.countries.stat
    es.cities.procedures.procedure_name":"ssss" }

    and infind pass parameter as

    abc.find(JSON.parse(str_temp_querry), callback);