2014-01-16 186 views
0

我有一個文檔類型,它具有聚合數組,我限制爲200個具有最近日期的元素,每當我將新項目添加到該數組時,我排序日期和切片,我很喜歡它的性能,但我想增加限制和大小不是問題,因爲它們是最大7個元素的簡單對象,我的問題是:mongodb將項目推到聚合集合的頂部

我想避免調用$sort,因爲我覺得它太貴了,直接打電話$slice,因爲我看不出按日期排序的問題,但問題是最近的項目被添加到數組的底部,有沒有辦法將項目添加到頂端的數組?

這樣它將被排序而不需要致電$sort,我可以直接$slice

+0

你想不斷增加數組的大小呢?或者你還想繼續保持200多? –

+0

@AsyaKamsky正是這樣,所以這就是爲什麼我使用切片,但我想避免調用排序,我用puch每個添加項目到數組,但他們被添加到buttom,我想將它們添加到頂部,所以我得到一個自然爲了不必打電話排序,我想保持超過200,2000如果我可以,但我知道每個文件的16MB限制,並且我有大約840000具有類似架構的文檔,並且我在4臺機器上進行分片。 – Kanka

回答

1

你不能沒有在2.4排序或更早做到這一點,但在接下來的主要版本the $push operator將有additional capabilities,包括推到數組中,這很可能是你想要做什麼的,如果你總是插入比之前存儲的日期更晚的日期。

的功能是開發版本2.5.3及更高版本,但這些都不是穩定的生產版本,所以我會建議在它嘗試的功能了,但不部署到生產直至2.6出來了。

+0

偉大的我我不急!任何想法什麼時候,我確定使用2.5.3,任何想法,當他們最終發佈會出來? – Kanka

+1

2.5.4。出現了一段時間,2.5.5將會在現在的任何一天出現,這是最後一個開發版本,下一個將會是2.6.0 –

+0

非常感謝!很高興知道它的到來,我現在將使用排序 – Kanka