對不起,這聽起來像一個愚蠢的問題,但我是新的mongoDB,我找不到解決方案。我怎樣才能得到N的結果與條件和M的結果與MongoDB的另一個條件
我想從一個集合中獲得確定數量(n)的「高級」對象,以及另一個確定數量(m)的沒有「高級」的元素。這兩種元素都存儲在同一個集合中,並且它們有一個名爲「premium」的布爾字段。他們也是地理定位的(2d索引數組),我想讓它們按距離排序,然後按溢價/不溢價(按重要性排序)。
不知道我是否失去了一些東西,很抱歉打擾。
在此先感謝。
對不起,這聽起來像一個愚蠢的問題,但我是新的mongoDB,我找不到解決方案。我怎樣才能得到N的結果與條件和M的結果與MongoDB的另一個條件
我想從一個集合中獲得確定數量(n)的「高級」對象,以及另一個確定數量(m)的沒有「高級」的元素。這兩種元素都存儲在同一個集合中,並且它們有一個名爲「premium」的布爾字段。他們也是地理定位的(2d索引數組),我想讓它們按距離排序,然後按溢價/不溢價(按重要性排序)。
不知道我是否失去了一些東西,很抱歉打擾。
在此先感謝。
你不能在一個查詢。您將必須運行兩個查詢併爲每個查詢使用限制,然後將它們合併到您的應用程序中。
或者,您可以運行一個查詢,而不必使用謂詞「高級」和「非高級」,並在應用程序中進行拆分。您可能不得不高估項目數量,以便在結果中包含足夠的保費和非保費憑證。
當你按照距離排序時,除非需要具有完全相同位置的文檔,否則我會發現它不太可能,因此您將有兩個具有相同距離的文檔,因此二次排序「溢價「不大可能是必要的。
謝謝Derick。我也這麼想。所有高級場所都應該首先由於要求而非高級場所,但兩組都按距離排序。無論如何,你的答案解決了這個問題。我認爲它可以在一個完成。 –
你見過「極限(X)」的描述嗎?這聽起來像你想要的。 http://docs.mongodb.org/manual/reference/method/cursor.limit/ –
你好,Asya,謝謝你的回答。是的,但事情是我不知道如何使兩個不同的querries在一個。 –