不同类型的 MongoDB 索引

Posted

技术标签:

【中文标题】不同类型的 MongoDB 索引【英文标题】:MongoDB Index on different types 【发布时间】:2011-06-20 17:43:36 【问题描述】:

我们可以在同一个集合中拥有 data: "hello" , data: 123 ,甚至可以在其上创建索引。我很好奇 mongodb 是如何在后台管理索引的。我们不能在不同类型上创建单个 B 树。正确的?但是,我确实 getIndexes 来查看是否创建了另一个索引但只创建了一个索引。

【问题讨论】:

【参考方案1】:

在同一个索引中有两种类型没有问题。索引中的每个键都包含类型。

当您查询时,只会返回与您查询的类型匹配的对象。

因此,如果您查询 data: "hello",则只会返回字符串等。

【讨论】:

但是在管理索引时,我们需要执行比较操作。 mongo中不同类型的比较如何。在类型不匹配或类似情况下是否考虑插入时间? @SushantGupta 你找到你评论的答案了吗?如果是,请告诉我们我有同样的问题 @babakfaghihian 不,我没有。你可以去问问。我很高兴知道它的答案:) @Kyle Banker,我们知道“在同一个索引中有两种类型没有问题”。问题是关于 MongoDB 如何管理它。您写道只有一个 BTree 将键的类型与键一起保存。我发现这个解决方案与每个具有字段的值类型具有不同 BTree 的解决方案相比不是最优/简单的。我的反对意见是轻率的,但在您编辑答案之前我不能撤回它。你能补充更多信息吗? @SushantGupta 已定义比较顺序:docs.mongodb.com/manual/reference/bson-type-comparison-order

以上是关于不同类型的 MongoDB 索引的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python在mongodb的两种不同类型的字段或索引或标题中搜索值?

MongoDB——索引类型之通配符索引(Wildcard Indexes)

MongoDB——索引类型之通配符索引(Wildcard Indexes)

MongoDB - 与查询不同不使用索引

MongoDB索引相关文章-摘自网络

mongodb06---索引