目前,在使用请求模块时,我在实现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,将其自身字符串化并尝试添加它等。
在使用请求模块时,我找不到限制查询的方法。
非常感谢任何帮助!
答案 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的末尾。