【发布时间】:2016-12-30 12:35:13
【问题描述】:
好吧,这可能只是我很愚蠢,没有正确查看 MongoDB 文档,但无论如何这是交易:
我有一个 RESTful API 路由,如下所示:
GET /api/users?ids[]=id1&ids[]=id2
它被解析成如下所示的对象:
var parsedObject = {ids: ['id1', 'id2']}
这会从查询字符串中返回具有指定 ID 的用户。现在,我希望这是可选的,因此这样的请求也可能是有效的:
GET /api/users
在mongoose中,为了找到指定id的用户(如果有的话),我需要在查询时使用$in操作符,如下:
UserSchema.find()
.where('_id').in(req.query.ids)
.exec(function(err, users){
//some code
});
但是,当req.query.ids 不存在时,它不会返回所有文档,而是什么都不返回。
我已经尝试过这样的东西:
var queryIds = req.query.ids || {};
仅当req.query.ids 存在时,我如何才能使用$in?肯定有比做这样的事情更好的方法:
if (req.query.ids) {
UserSchema.find()
.where('_id').in(req.query.ids)
.exec(function(err, users){
//some code
});
} else {
UserSchema.find()
.exec(function(err, users){
//some code
});
}
我希望这是有道理的...感谢您的宝贵时间!
【问题讨论】:
标签: javascript node.js mongodb mongoose query-string