2015-11-13 64 views
0

假設我們有一個MongoDB的收集與項目,如MongoDB的比賽子兒

{ 
    "_id" : "f239tmmls03", 
    "items" : { 
    "id_0mgq95k3t" : { 
     "value" : 591 
    }, 
    "id_95jf3156w" : { 
     "value" : 12 
    } 
    } 
} 
{ 
    "_id" : "959giwmgsr", 
    "items" : { 
    "id_kg384962" : { 
     "value" : 9 
    } 
    } 
} 

類似的東西。是否有一種簡單的方法,例如搜索具有給定值的一個或多個項目的文檔?例如,像

db.the_collection.find({"items.?.value" : 12}) 

這樣的查詢,它將返回我給出的兩個示例文檔中的第一個。實質上,我希望能夠跳過一個或多個文檔層,因爲它們被一些任意字符串鍵入。

回答

0

至於據我所知,即使它是一個是(不是),這將是很難建立一個索引。因此這種查詢將非常緩慢。

爲什麼不使用數組有什麼具體原因?

{ 
    "_id" : "959giwmgsr", 
    "items" : [{ 
     "id": "id_kg384962", 
     "value" : 9 
    }] 
} 
+0

我不知道爲什麼我們不/不使用數組,但現在有成千上萬的文檔,所以對於這樣的措施有點遲,不過謝謝。 – Erhannis