【发布时间】:2017-12-31 15:03:32
【问题描述】:
我对 Mongo 和 mongoose 比较陌生,但遇到了一个问题。
我有一个相当复杂的查询(无论如何对我来说),这将允许用户搜索所有输入的术语。
所以如果查询是这样的:
var query = { '$and' : [
{ "foo1" : "bar1" },
{ '$and' : [ "foor2" : { $ne : null } }, { "foo2" : "bar2" } ] },
{ "foo3" : "bar3" }
]};
Doc.find(query);
但用户可以为参数输入任意数量的组合,即我可以搜索匹配 foo1 和 foo2 的所有项目,或者只搜索匹配 foo2 的所有项目,或者只搜索 foo3 等。
有没有办法告诉查询只查找不为空的参数,或者有没有办法以编程方式构建这样的搜索?我已经看到了其他选项,用于添加这样的参数,但它们似乎只添加在标准中
{ foo : 'bar' }
格式,并且由于某种原因,它们似乎总是被添加以查询它们是否满足 if 语句的条件。
谢谢。
【问题讨论】:
标签: mongodb express mongoose mean-stack