2014-01-27 86 views

回答

0

首先,MongoDB自己生成ObjectID("507f191e810c1972xxxxx")(如果你没有设置它的话)。正如docs中提到的:

所有的MongoDB文档都必须有一个带唯一值的_id字段。这些操作没有明确指定_id字段的值,所以mongo在将字段插入集合之前为该字段创建唯一的ObjectId值。

这篇文章ObjectID描述了BSON ObjectID规范。该格式包括:

  1. 时间戳。这是一个unix风格的时间戳。它是一个有符号整数,表示1970年1月1日之前或之后秒数(UTC)012秒。
  2. 机器。这是计算机主机名称的(md5)散列的前三个字节,或者MAC /网络地址或虚拟机器ID。
  3. Pid。这是生成对象ID的进程的进程ID(或线程ID)的2个字节。
  4. 递增。这是一个不断递增的值,或者如果计数器不能在语言/运行时使用,则是一个随机数。

服务器本身和几乎所有的驱动程序都使用上述格式。

插入成功后,_id包含ObjectID("507f191e810c1972xxxxx")被大多数驱动程序返回。


主键&指数_id字段被保留在MongoDB中的主键,这应该是一个独特的价值。如果您没有设置任何内容到 _id,它将自动生成 ObjectID("507f191e810c1972xxxxx"),如上所述。

MongoDB创建默认_id索引,该索引是_id字段上的唯一索引。 MongoDB默认在所有集合上创建这个索引。您无法删除_id上的索引。欲了解更多信息,这里是link

-1

有很多JSON库,你可以使用,例如,谷歌的GSON: https://code.google.com/p/google-gson/ 你加入,你可以使用的方法fromJson方法来获取对象的JAR文件之后。 http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html

+1

请提供一个正确的答案。是否有任何方法来查找json字符串的编号 – chopu

+0

如果您的类型有一个ID作为属性,您使用fromJSON方法,你得到你的对象,然后使用点符号来获得它的ID – Tal87