2015-12-16 76 views
0

我正在開發一個移動應用後端,並使用MongoDB來存儲數據。我在MongoDB中實現了分頁,並且工作正常。現在,我有一個要求在下面解釋。該方案如下:MongoDB中的頁面限制

  • 用戶可以有兩種類別(用戶集合 - 包含用戶個人資料信息)
  • 在每個類別中,用戶可以上傳圖片(圖片集 - 包含所有上傳的圖片。所有的用戶)

在應用程序的主頁上,它需要顯示10個圖像每個類別(共20圖像)。

當我查詢MongoDB時,我在Image Collection中的category_id上使用OR操作,並使用limit返回20個圖像。顯然,它會返回20個圖像組合成的兩個類別。是否有可能在單個查詢中返回每個類別10個圖像?

回答

1

或者不是你想要的。或者會選擇符合任一選項的每個結果。 OR並不關心每個類別匹配的數量,只要達到了限制即可。

據我所知,您必須執行兩個單獨的查詢,每個類別一個。

你可能能夠通過聚合來解決某些問題,但我不知道該如何實現。

如果你問我,執行兩個簡單的查詢可能會令人驚訝地超過許多技巧。

+0

我知道或不正確的事情。實際上,這個頁面會被最常訪問,這就是爲什麼我想以某種方式一次完成它。無論如何,我會帶着兩個疑問,直到找到別的東西。謝謝! –

+0

你能告訴我該做什麼,如果將來有兩個以上的類別?想知道,如果反規範化在某種程度上可以幫助這裏嗎? –

+1

@RaviKant這就是你要找的東西:http://stackoverflow.com/questions/25711657/mongodb-limit-array-within-aggregate-query –

-1

查詢

cursor = collection.find({status:1}).limit(20).sort({ date: -1 })