2014-01-27 138 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