猫鼬或查询

时间:2013-09-29 13:00:54

标签: node.js mongodb mongoose

我需要根据多个文本字段查找文档。

var term = new RegExp(req.query.search, 'i');
.find({ company_name: { $regex: term }});

使用上述作品很棒。但是,当我尝试使用

添加其他字段时
.find(...).or([{ bio: { $regex: term }}]);

无法检索任何记录。我需要为更多领域做这件事。

架构具有索引的不同文本字段,但不能作为单个多字段索引一起使用。这会更好吗?如果有的话,有没有明确的例子呢?我发现的文档很少。

有什么想法吗?

1 个答案:

答案 0 :(得分:10)

将两个字段放入传递给or的数组中:

.find().or([{ company_name: { $regex: term }}, { bio: { $regex: term }}]);

您需要单独的单字段索引,因为每个or字词作为单独的查询执行。