Nodejs:如何在mongodb使用Request模块时设置限制

时间:2016-08-23 18:33:14

标签: node.js mongodb

目前,在使用请求模块时,我在实现mongodb的查询限制时遇到了一些麻烦。我确实有一些查询,我将其字符串化并附加到正在请求的URL。但是,设置应显示多少结果的限制(如mongodb doc中所述:https://mongodb.github.io/node-mongodb-native/markdown-docs/queries.html(请参阅选项))并不是这样做的,或者至少我把它放在了错误的地方...... / p>

//request all countries that are in the database and push them into a search array

var query = JSON.stringify({'createdDate': {$gte: moment().subtract(5, 'days')}});

request(db_url + 'countries/?' + query, function(error, response, body) {}

尝试添加:

var querylimit = {"limit": 20}

mongodb doc给出了以下示例:

var options = {
"limit": 20,
"skip": 10,
"sort": "title"
}

collection.find({}, options).toArray(...);

尝试在stringify中添加查询(+ query,querylimit)后面的querylimit,将其自身字符串化并尝试添加它等。

在使用请求模块时,我找不到限制查询的方法。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow @ Jan173

您无法将新对象与字符串化对象联系。

相反,您可以使用JSON.parse将字符串转换为对象,并将查询限制添加到同一对象中

var queryObj = JSON.parse(query); // stringify query converted to object
queryObj.limit = 20; // adding new propery limit to query object
collection.find({}, queryObj); // fetch data with query object

希望这会奏效,快乐编码:)

答案 1 :(得分:0)

您需要执行以下操作:

var limit = 20;
request(db_url + 'countries/?' + encodeURIComponent(query + "&limit=" + limit), function(error, response, body) {}

您只是将查询选项附加到URI的末尾。