下面是我收集的MongoDB文档的一个例子:根据输入参数和会话信息结合MongoDB的查询
{
"countries": ["IN", "US", "UK"],
"regions": ["North", "South", "East", "West"],
"types": ["A", "C"],
"doc": {
"prop" : "value"
}
}
,我要查询的国家,地区和类型。我的JavaScript代码为按国家和地区查询想这样的:
if(inputCountry && !inputRegion) {
db.collection.find({countries: inputCountry}, callback);
} else if(!inputCountry && inputRegion) {
db.collection.find({regions: inputRegion}, callback);
} else if(inputCountry && inputRegion)
db.collection.find({countries: inputCountry, regions: inputRegion}, callback);
} else {
db.collection.find({}, callback);
}
正如你看到的,我已经给国家和地区的4如果其他条件。当我也按类型查询时,由于各种组合的原因,这会变得更复杂,并且容易出错。
有没有办法避免这样做,我们可以结合mongo查询吗?
这些输入参数来自哪里?如果它们来自'req.query'或'req.params'对象,则可以在不使用条件语句的情况下构建查询。 – chridam
两个来自req.query,一个来自req.session。如何做到这一点没有条件? –