2017-09-26 65 views
0

我有一個用例,其中集合中的一組記錄需要在指定的時間間隔後被刪除。 例如:超過10小時的記錄每10小時刪除一次。在MongoDB中對一個集合中的記錄進行分區

我們嘗試了基於ID的刪除,但發現它很慢。

有分區集合中的記錄和刪除分區的和需要蒙戈時

回答

0

的MongoDB目前不支持分區的方式,有一個JIRA票添加爲特徵(SERVER-2097) 。

一個解決方案是利用多個基於時間的集合,以與分區類似的方式循環集合。通常我們會這樣做,當你通常只查詢這些基於時間的集合中的一個或幾個時。如果您經常需要閱讀多個集合,則可以添加一些包裝代碼來簡化該集合。

還有TTL Indexes,它利用mongod服務器中的後臺線程爲您處理刪除。

由_id造成的刪除可能由於多種原因而變得緩慢,並且可能需要在原始問題之外進行更多調查。