【发布时间】:2016-09-19 11:54:07
【问题描述】:
我正在运行一个处理 REST Api 调用的 node.js 服务器。 这些调用的响应将是一个或一组 MongoDB 对象 (JSON)。
我已经阅读了有关参数以及如何处理它们的信息。但是有没有办法自动做到这一点?
假设我有一个用户集合:
name: String,
hobby: String,
age: Number
现在我想获取所有年龄为 18 岁的用户的列表。
我知道我可以像这样恢复参数:
url: http://localhost:3000/user?age=18&hobby=something
var app = express();
app.get('/user', function (req,res) {
var age=req.query.age;
var hobby=req.query.hobby;
mondodbUser.find(...);
}
但假设用户有 10 个不同的属性,而我有 15 个不同的集合。我不能动态地做到这一点吗?所以我不必恢复所有可能的参数?
我希望能够以使用所有给定参数的方式搜索 MongoDB。
我希望我能表达得足够好 :D 谢谢!
【问题讨论】:
-
假设用户有 10 个不同的属性,而我有 15 个不同的集合,你能澄清一下吗?
-
我不想手动从 URI 中恢复每个参数并在 mongoDB 的 find() 方法中使用它,而只是使用 URI 中给出的任何参数调用 find() 方法.
-
也许我想多了,我可以尝试检索每个参数并将其提供给 find 方法,即使它为 NULL/未定义?
-
那么你为什么不能只做
User.find(req.query, cb),因为req.query对象将只具有查询字符串中定义的属性,仅此而已。 -
我可以!谢谢!那是我不知道的:D 也许我应该阅读更多关于 mongoDB find 和 req.query 的信息,而不是尝试为其余的 api 寻找示例!您可以添加一个答案,如果需要,我会将其标记为正确。不确定这个 StackOverflow 的东西。
标签: javascript node.js mongodb rest