我期待實現一個固定長度的基於時間的隊列,其中舊項目從後面彈出。Mongoose是否支持固定隊列數組的概念
例如,我有一個限制爲10個項目的評論列表,第11個項目進來,最早的項目落在背後。
如果在Mongoose中不支持,有人可以告訴我一些我可以使用的技巧嗎? (預/等)
非常感謝
我期待實現一個固定長度的基於時間的隊列,其中舊項目從後面彈出。Mongoose是否支持固定隊列數組的概念
例如,我有一個限制爲10個項目的評論列表,第11個項目進來,最早的項目落在背後。
如果在Mongoose中不支持,有人可以告訴我一些我可以使用的技巧嗎? (預/等)
非常感謝
MongoDB引入了capped arrays(來自v2.4),它可以用來限制數組中元素的數量。
db.myCollection.update({"arrayField.10": {$exists: true}}, {$pop: {"arrayField": 1}})
的「A.10」鍵檢查元件10在「arrayField」的存在,這將意味着在陣列大小等於或大於10。如果它會自動從陣列背面彈出1個元素。
可能不是您的案例的最佳解決方案,但希望這可能會讓你走向正確的方向。
這是使用本機mongo正確嗎? – Slappy
正確,這個查詢是本地mongo。 –
看到一些例子根據Mongoose Wiki - 它現在支持MongoDB的上限陣列:
貓鼬3.6支持這些新的MongoDB 2.4數組運算符。模型。更新(matcher,{$ push:{docs:{$ each:[{x:1},{x:23}, {x:5}],$ slice:-2,$ sort :{x:1}}}})
貓鼬的任何具體例子? – Slappy
我對貓鼬沒有太多的經驗,抱歉。 –
+1這是在貓鼬沒有什麼不同。 – JohnnyHK