我需要查詢3個不同的集合。查詢三個集合的最高效方法,對它們進行排序並限制?
然後,我需要收集結果(均基於不同的領域和秩序,但每次DateTime值)進行排序,最後將結果限制我想要的(10在我的情況)的數量。
目前,我只是在做三個單獨的查詢,並限制每個10的基礎上,他們有日期時間,然後手動排序。然後我終於將自己限制在10人以內。
有沒有更好的方法來做到這一點?
我需要查詢3個不同的集合。查詢三個集合的最高效方法,對它們進行排序並限制?
然後,我需要收集結果(均基於不同的領域和秩序,但每次DateTime值)進行排序,最後將結果限制我想要的(10在我的情況)的數量。
目前,我只是在做三個單獨的查詢,並限制每個10的基礎上,他們有日期時間,然後手動排序。然後我終於將自己限制在10人以內。
有沒有更好的方法來做到這一點?
由於mongodb不是關係數據庫,您可以在一個查詢中連接多個表,我甚至不確定您是否可以爲關係數據庫管理系統進行這樣的排序(將每個字段按優先順序排列)。
你正在做的事情聽起來很不錯。你可能會改善你對這3個結果的排序。如果沒有其他元素可以位於整個頂部10之內,則可以儘早中止迭代一個或多個集合。您可以相應地修改您的查詢以僅返回其他兩個集合的文檔,這些文檔的日期低於最後一個(第10個)第一個查詢收集。但是,也許你已經進行了...
在談到你可以考慮到用於查詢保存在內存預排序的字段,這些日期時間字段添加索引的性能。
+1我以爲一樣:) – Devesh
這些收藏是什麼?查詢是什麼樣的? – Adil