2016-03-12 54 views

回答

1

即使MongoDB中不提供自動遞增序列開箱,還有所有的積木可以和MongoDB文檔提供了有關如何執行這些建議:https://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/

我認爲這是值得還注意到,MongoDB反而使用自然唯一標識符,否則 - 生成ObjectId(它不是按順序排列,但每個新實例都是唯一的)。也就是說,例如,如果保存文檔時未指定_id,則數據庫客戶端將自動爲其生成一個ObjectId。此功能默認內置於所有客戶端API中。

如果你想重用分配到一個新文檔的ObjectId,有兩種選擇:新存儲的文檔

  • generate an ObjectId自己,並將其分配給的_id領域的

  • +0

    您好,它不一定是自動遞增的。我只需要在插入記錄之前創建一個ID – Luke101

    +0

    好吧,沒有閱讀完整的答案。 GenerateNewId就是我一直在尋找的東西。 – Luke101

    1

    AFAIK - 在Mongo中沒有相應的功能。 正在考慮服務器端JavaScript,但說實話,在這種情況下,我要做的就是將這個職責轉移到應用程序域,使用集合中的一個作爲跟蹤(比如說最後一個序列) - 換句話說就是手動序列函數實現。

    +0

    我同意我認爲,不存在一個等價物,即使在mongo的Spring數據中,當我直接插入一個新文檔時Spring會生成一個uuid作爲我的ID –

    相關問題