可选的MongoDB .find()查询?

时间:2018-09-18 10:09:52

标签: javascript mongodb nosql non-relational-database

我正在构建一个表单,用于根据输入的文本过滤数据库条目。它可用于搜索数据库条目的名称,但是如何使它也搜索条目的描述,但是如果没有匹配项,那么它将被忽略?

例如Database.find({name:searchText,desc:searchText})。fetch(); // searchText是一个正则表达式对象

我想返回在name和desc中包含searchText的所有内容,但是如果desc不匹配,我仍然想返回与name匹配的内容。

尝试这样做而不创建新查询是不必要的,是否缺少我想输入的可选参数?

我希望这是有道理的。谢谢

2 个答案:

答案 0 :(得分:0)

最终使用for循环对其进行了修复。

let a = Database.find({name: searchText}).fetch();
let b = Database.find({desc: searchText}).fetch();
for(let c in b){
   a.push(b[c])
}
return b;

以防万一有人遇到类似问题。 如果有更好的解决方案,请仍然回答!

答案 1 :(得分:0)

为什么不使用OR运算符?对我来说,这足以满足您的要求。