【发布时间】:2021-01-19 13:07:22
【问题描述】:
我在 MongoDB 中名为 Messages 的集合包含大量带有消息内容和元数据的消息。每条消息都有一个Sender 和Recipient id,格式为UUID,又是string。在某些用例中,我需要使用相同的UUID 查询Sender 和Recipient,或仅使用Sender 或仅使用UUID 查询Recipient,或使用不同的UUIDs 查询两者。
我为第一种情况创建了一个文本索引,效果很好,但在其他情况下我也需要有效地搜索。你有什么建议?我应该调整/改变什么?我无法在同一个集合中定义任何其他文本索引,因为目前 MongoDB 中的文本索引数量存在限制。
注意:我最初不了解文本索引并尝试创建常规索引,但它们根本不被查询使用,即使我强制使用它们,查询仍然会扫描所有无用的文档。
【问题讨论】:
-
这里根本不需要文本索引。它用于全文搜索。您需要一个常规索引。
-
根据执行分析查询时不使用常规索引。
-
这听起来不太可能。也许设置一个 mongo playground 来展示这种行为?
-
我试过但无法创建索引。 mongoplayground.net/p/OnjLE72UMmr