簡體   English   中英

MongoDB索引:多個單場與單一化合物?

[英]MongoDB Indexing: Multiple single-field vs single compound?

我有一些地理空間+時間數據的集合,還有一些其他屬性,我將在地圖上顯示。 該集合此時有幾百萬份文檔,並且會隨着時間的推移而增長。

每個文檔都包含以下字段:

  • 位置:[geojson對象]
  • 日期:[日期對象]
  • ZoomLevel:[int32]
  • EntryType:[ObjectID]

我需要能夠通過位置(通常是geowithin查詢),Date(通常為$ gte / $ lt),ZoomLevel和EntryType的任意組合快速查詢此集合。

我想知道的是:我應該制作一個包含所有四個字段的復合索引,還是每個字段的單個索引,或者它們的某些組合? 我在MongoDB文檔中讀到以下內容:

對於包含2dsphere索引鍵和其他類型鍵的復合索引,只有2dsphere索引字段確定索引是否引用文檔。

...聽起來這意味着將位置的2dsphere索引作為復合索引的一部分可能毫無意義?

對此的任何澄清都將非常感激。

對於您的用例,您將需要使用多個索引。

如果您創建一個涵蓋文檔所有字段的索引,則只有在索引中包含第一個字段時,您的查詢才能使用它。

由於您需要通過這四個字段的任意組合進行查詢,因此我建議您分析數據訪問模式,並確切了解您實際使用的過濾器,並為每個過濾模板創建特定索引。

編輯:關於2dsphere的問題,讓它們復合是有意義的。

本說明涉及'稀疏'選項。 稀疏索引僅引用包含索引字段的文檔,對於2dspheres,將忽略的唯一文檔是不包含geojson / point數組的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM