我正在使用angularJs和mongoDB与restheart构建一个网站来构建数据库。
我的输入是用这种方式写的,
{{1}}
我的过滤器参数是
{{1}}
事实证明,在激活过滤器并返回结果之前,我必须在所有5个输入区域中输入文本或空格。之后,我可以在一个区域输入,另外4个空白,结果显示。似乎一个输入不足以触发过滤器。
我尝试使用ng-init并使用一个空格而没有一个空格,但它根本不起作用。只有在ng-init中有一个字符时,它才会触发过滤器。
我在想,如果restheart过滤器中的“或”参数能解决问题吗?如果是这样,请告诉我如何写。
我应该怎么做才能解决这个问题?
答案 0 :(得分:0)
将几个值传递给过滤器 qparam实际上会使用AND运算符将它们链接起来。
如果你想使用OR尝试类似的东西(我还没有测试过):
$http.get("http://localhost:3000/pupdb/pupdb/?count&pagesize=10&filter={'$or': [{ "description" : { "$regex" : "(?i)\"+$scope.Des+\".*" }}, { "gene_name" : { "$regex" : "(?i)\"+$scope.GeneN+\".*" }}, { "site" : { "$regex" : "(?i)\"+$scope.Site+\".*" }}, { "species" : { "$regex" : "(?i)\"+$scope.Org+\".*" }}, { "uniprot_AC" : { "$regex" : "(?i)\"+$scope.UniP+\".*" }}]")
请参阅https://docs.mongodb.org/manual/reference/operator/query/or/