我有一個集合products
相關文件(產品)這樣的(唯一相關的代碼):蒙戈彙總查詢面導航
{ "_id": "prod1", ... "colors": ["red","blue"], "size": ["S", "M"], ...}
{ "_id": "prod2", ... "colors": ["red","green"], "size": ["S", "XL"], ...}
{ "_id": "prod3", ... "colors": ["yellow","blue"], "size": ["XL", "XXL"], ...}
我想向用戶提供唯一可用的選擇,作爲一個面搜索,就像選項的名稱和可用選項的數量一樣。
顏色:
red 2
blue 2
green 1
yellow 1
尺寸:
S 2
M 1
XL 2
XXL 1
如果我不得不這樣做在SQL,我可能會運行每個面組查詢。
SELECT colors, count(*) AS number FROM products GROUP BY colors
比第二查詢
SELECT size, count(*) AS number FROM test GROUP BY sizes
如果有人選擇了 「紅色」,比我可能會添加到每個查詢的 「WHERE」 子句:
WHERE colors = 'red'
莫非
有人比我更有經驗,請幫我在MongoDB中使用這個例子?我是否必須運行兩個查詢,或者是否有一些我缺少的內容,並且可以在一個查詢中完成?我想我會有很多產品。任何幫助讚賞。特別是如果有任何技巧來加速它。我想從頭開始,因此提出這個問題。謝謝。
你在什麼版本的MongoDB上? – styvane