gpt4 book ai didi

mongodb - 如何在 MongoDB 中索引 "or"?

转载 作者:可可西里 更新时间:2023-11-01 10:07:34 28 4
gpt4 key购买 nike

假设我有很多与此类似的文档...

{
name: 'alex',
city: 'LA',
about: 'designer',
}

db.people.find({'name':'alex', $or: [{'city':'LA'}, {'about':'designer'}] });

如果我想查询那个,我该如何索引它?每次有“或”时都需要 2 个索引吗?

最佳答案

索引中的第一个词始终是 official Mongo index documentation .

为了更直接地回答这个问题,如果您希望查询不仅仅对“name”使用索引,则需要对所有三个字段都使用索引。虽然这可以通过三个单独的索引来完成,但一对复合索引可能会提供更好的结果:

db.people.ensureIndex({name:1, city:1});
db.people.ensureIndex({name:1, about:1});

然而,在确定任何选项之前,我会利用 Mongo 的 explain method确定每个索引在无索引查询中给您带来的 yield (测试与您预期的生产数据集一样大的数据集)。我会特别注意每个索引组合的“nscanned”和“nscannedObjects”属性,并使用“indexOnly”和“isMultiKey”验证是否正在使用所需的索引。

最后一点,过度索引也会导致性能问题——如果不是这样,我们就不必确保索引。确保您需要索引的读取速度增益超过这些索引的写入速度损失。

关于mongodb - 如何在 MongoDB 中索引 "or"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7857443/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com