2012-07-30 78 views
0

我們在Mongo DB中有一個用戶文檔,並希望使用_id字段作爲userID字段並對其進行增量。
我在Mongo文檔中找到了一個計數器(「用戶」)JS方法(http://www.mongodb.org/display/DOCS/Object+IDs)。java mongo自定義對象id userid

從蒙戈殼牌,我可以調用,

db.user.insert({_ ID:計數器( 「用戶」),名稱: 「湯姆」 ...});

現在,我如何使用Java代碼中的相同命令?無法找到從Java代碼指定Javascript函數的方法。
還看到了$ inc的findAndModify命令和用法,但無法使其正常工作。這樣我們可以不用調用JS計數器函數,我假設。

在_id字段中使用自定義值而不是Mongo的對象標識有什麼含義,有什麼需要注意的地方?
〜vish

+0

爲什麼你想增加它?爲什麼不生成全新的ObjectId? – 2012-07-30 06:08:59

+0

我可以在Java代碼中使用ObjectID,但明天如果他們想要將數據庫更改爲其他內容,那麼可以繼續引用ObjectId作爲id,像userID,roleID,permissionID等。我不知道關於它,請告知。 – 2012-07-30 06:13:57

+1

如果他們決定稍後更改數據庫,則會遇到更大的問題。只需使用ObjectIds。 – 2012-07-30 06:16:23

回答

0

TL; DR:只要使用的ObjectID

它幾乎沒有什麼意義,產生新的ObjectID這樣。你應該爲每個新對象創建一個新的ObjectId。這很容易,並提供良好的全球獨特性保證。

如果你這樣做是爲了從數據庫中抽象出你自己,它將無法工作。 MongoDB是一個非常具體的數據庫。如果僅將mongo用作K/V存儲(可以認爲是memcached,但速度較慢),則可以抽象,但有更好的產品具有此功能。