测试mongodb查询中的参数

时间:2014-10-07 16:37:32

标签: mongodb parameters

我想避免在查询数据库之前编写条件语句来检查参数 所以我不必多次写相似的查询,但我必须写一个单一的查询。

所以我的第一个查询是

db.results.find( {  travel_class : "first" } })

并返回多个文档

我的第二个问题是

var travel_class_filter = "all";
db.results.find( {'$and' : [ { travel_class_filter : "all"} , { travel_class : "first" } ]})

并返回0个文档,而不是第二个查询的相同数量的文档

你知道为什么吗?

1 个答案:

答案 0 :(得分:1)

您无法在查询中测试参数,但可以通过以编程方式构建查询对象来执行此操作:

var query = {};
if (travel_class_filter != 'all') {
    query.travel_class = travel_class_filter;
}
db.results.find(query);