2015-08-08 64 views
0

對於MongoDB而言,如果文本字段在創建索引時是分類的,那麼它會起作用嗎?也就是說,索引是文本,但只能支持有限的一組值。MongoDB - 分類文本索引

Ex。

{ 
    v_ : 
     { g_e : 'VH1' } 
}, 

{ 
    v_ : 
     { g_e : 'VH2' } 
} 

目前,我只是在做,

db.coll.createIndex({'v_.g_e':1}) 

但我知道,這個指標只能取約60文本值。 mongo是否知道這一點,或者是否有更有效的方法來對此進行索引?

回答

-1

您可以根據需要在文本索引中放入儘可能多或很少的字。 你必須問問你自己是否想要在放入文本索引的字段中進行全文搜索(每個集合只能有一個)。

如果您不需要全文搜索並且只將有限的一組值與索引文檔進行比較,那麼您已經做對了,因爲您不希望按文檔的其他字段進行排序。在這種情況下,你必須把該字段到索引(順序事項!):

db.collection.createIndex({"v_.g_e":1,"fieldToSortBy":1}) 
+0

訂單的問題,如果我有一個複合索引有說6場,出了五隻查詢他們(但按照他們列出的順序是我沒有包括的那個),它會減慢查詢嗎?或者我應該創建一個只有五個字段的索引 – jwillis0720

+0

@ jwillis0720即使僅使用一些索引字段,MongoDB也可以並將使用複合索引。但是,有六個字段的複合索引聽起來有點像可能存在建模問題。例如,當查詢部分已經將文檔減少到僅僅幾個和/或文檔被作爲整體返回時,具有爲排序索引的字段通常是浪費珍貴的RAM。 –

+0

但是,只有五個字段的新複合索引會更快。這就是我要問的。 – jwillis0720