gpt4 book ai didi

MongoDB 索引 : Multiple single-field vs single compound?

转载 作者:可可西里 更新时间:2023-11-01 09:40:03 29 4
gpt4 key购买 nike

我有一组地理空间+时间数据和一些附加属性,我将在 map 上显示这些数据。该集合目前有几百万份文件,并且会随着时间的推移而增加。

每个文档都有以下字段:

  • 位置:[geojson 对象]
  • 日期:[日期对象]
  • 缩放级别:[int32]
  • 条目类型:[ObjectID]

我需要能够通过位置(通常是地理范围内查询)、日期(通常是 $gte/$lt)、ZoomLevel 和 EntryType 的任意组合来快速查询此集合。

我想知道的是:我应该制作一个包含所有四个字段的复合索引,还是为每个字段制作一个索引,或者它们的某种组合?我在 MongoDB 文档中阅读了以下内容:

For a compound index that includes a 2dsphere index key along with keys of other types, only the 2dsphere index field determines whether the index references a document.

...这听起来好像意味着让 Location 的 2dsphere 索引成为复合索引的一部分可能毫无意义?

如果对此有任何澄清,我们将不胜感激。

最佳答案

对于您的用例,您需要使用多个索引。

如果您创建一个覆盖文档所有字段的索引,您的查询将只能在索引中包含第一个字段时使用它。

由于您需要通过这四个字段的任意组合进行查询,我建议您分析您的数据访问模式并准确了解您实际使用的过滤器并为每个过滤器或过滤器组创建特定索引。

编辑:对于你关于 2dsphere 的问题,让它们复合是有意义的。

此注释指的是“稀疏”选项。稀疏索引仅引用包含索引字段的文档,对于 2dspheres,唯一将被排除在外的文档是不包含 geojson/point 数组的文档。

关于MongoDB 索引 : Multiple single-field vs single compound?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37354307/

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