7

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

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

使用上述方法效果很好。但是,当我尝试使用添加其他字段时

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

它无法检索任何记录。我需要为更多的字段执行此操作。

架构索引了不同的文本字段,但没有一起作为单个多字段索引。这会更好吗?如果是这样,是否有任何明确的例子?我发现的文档非常稀少。

有任何想法吗?

4

1 回答 1

10

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

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

单独的单字段索引是您想要的,因为每个or术语都作为单独的查询执行。

于 2013-09-29T14:01:55.187 回答