2012-07-30 51 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,但速度较慢),则可以抽象,但有更好的产品具有此功能。