如何在将JSON字符串插入MongoDB之前提取它的对象ID?
如何将Object id设置为主键?
答案 0 :(得分:0)
首先,MongoDB自己生成ObjectID("507f191e810c1972xxxxx")
(如果你没有设置它)。如docs中所述:
所有MongoDB文档都必须具有唯一值的_id字段。这些操作没有明确指定_id字段的值,因此mongo在将字段插入集合之前为字段创建唯一的ObjectId值。
在本文中,ObjectID描述了BSON ObjectID规范。格式包括:
- 时间戳。这是一个unix风格的时间戳。它是一个有符号的int,表示1970年1月1日之前或之后的秒数 (UTC)。
- 机。这是机器主机名(或mac /网络地址)或虚拟机的(md5)哈希的前三个字节 机器ID。
- PID。这是生成对象id的进程的进程id(或线程id)的2个字节。
- 增量。这是一个不断递增的值,如果计数器不能在语言/运行时使用,则为随机数。
醇>服务器本身和几乎所有驱动程序都使用上述格式。
成功插入后,大多数驱动程序都会返回保存_id
的{{1}}。
<小时/> 主键和&amp;索引强>:
ObjectID("507f191e810c1972xxxxx")
字段保留给MongoDB中的主键,并且应该是唯一值。如果您未向_id
设置任何内容,则会自动生成_id
,如上所述。
MongoDB创建默认的ObjectID("507f191e810c1972xxxxx")
索引,这是_id
字段的唯一索引。 MongoDB默认在所有集合上创建此索引。您无法删除_id
上的索引。有关详细信息,请参阅link
答案 1 :(得分:-1)
你可以使用许多json库,例如google的gson: https://code.google.com/p/google-gson/ 添加JAR文件后,可以使用fromJson方法获取对象。 http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html