我正在运行一台Express服务器来创建MongoDB中的端点,我将基于本指南https://devcenter.heroku.com/articles/mean-apps-restful-api
在尝试定义查询字符串时,我有以下功能:
app.get("/contacts", function(req, res) {
db.collection(CONTACTS_COLLECTION).find(req.query).toArray(function(err, docs) {
res.status(200).json(docs);
});
});
这可以按预期使用查询,其中查询参数是字符串,例如/contacts?name=Bob
。但是,如果我查询的字段恰好是整数(例如使用查询/contacts?age=21
),我发现响应产生一个空数组... []
答案 0 :(得分:1)
请求查询中的所有内容都是字符串,因此如果您设置了年龄= 21的网址,则必须将其解析为整数。
app.get("/contacts", function(req, res) {
var condition = {};
if(req.query.age) {
condition.age = parseInt(req.query.age, 10);
}
db.collection(CONTACTS_COLLECTION).find(condition).toArray(function(err, docs) {
res.status(200).json(docs);
});
});
答案 1 :(得分:0)
否定这一点。 http请求将所有内容解释为字符串。
中找到了解决方案