2013-06-20 45 views
3

我正在使用MongoDB構建數據庫。我發現了兩種在pymongo中插入密鑰的方法。在MongoDB中使用「_id」插入密鑰是否合適?

r.insert({'id': '1234', 'feats': 'abcd'}) 

r.insert({'_id': '1234', 'feats': 'abcd'}) 

MongoDB中的結果如下:

{ "_id" : ObjectId("51c27f8737450f1d517c1ec4"), 
"id" : "1234", 
"feats" : "abcd"} 

{ "_id" : "1234"), 
"feats" : "abcd" } 

由於沒有多少用MongoDB的經歷,我有沒有想法用法約爲'_id'。我認爲現在在MongoDB中插入的第二種方法更簡單。它會在未來造成其他災難嗎?謝謝。

回答

3

MongoDB使用_id沒有ID以其獨特的關鍵

如果您選擇添加一個名爲「ID」字段這無異於增加了一個名爲「名稱」

場你可以創建自己的不同_id'字段,但通常讓mongodb生成自己的ObjectId比創建自己的ObjectId更好。請參閱monogo docs

0

_id基本上是主鍵,默認情況下由OjbectId填充,但可更改爲存儲任何值;記住它是不可更新的,基本上一旦設置它就不能改變。

2

你也可以考慮作爲(類似)SQL SERVER中的Identity列,它將成爲主鍵。但你也可以擁有自己的鑰匙。例如,如果您要創建一個用戶集合,其中用戶ID將是電子郵件ID並且需要是唯一的,則可以將該電子郵件設置爲_id,並且我們不需要爲_id列創建任何分離索引