MongoDB 對象主鍵 ObjectId


常規主鍵

生成

> ObjectId()
ObjectId("5d7f4c36a7b5867462dee50e")

提取生成的時間

> ObjectId("5d7f4c36a7b5867462dee50e").getTimestamp()
ISODate("2019-09-16T08:47:50Z")

復合主鍵

主鍵也可以使用對象來表示,即復合主鍵。

創建復合主鍵文檔

> db.accounts.insert({ _id:{ "name" : "david", "balance" : 200 },"name" : "charlie", "balance" : 500 })
WriteResult({ "nInserted" : 1 })

復合主鍵文檔ID重復性判斷

> db.accounts.insert({ _id:{ "name" : "david", "balance" : 200 },"name" : "charlie", "balance" : 500 })
WriteResult({
 "nInserted" : 0,
 "writeError" : {
  "code" : 11000,
  "errmsg" : "E11000 duplicate key error collection: test.accounts index: _id_ dup key: { _id: { name: \"david\", balance: 200.0 } }"
 }
})
# 復合主鍵對象key的順序、value值、value值的類型等完全一樣,方認為復合主鍵沖突。
> db.accounts.insert({ _id:{ "balance" : 200, "name" : "david" },"name" : "charlie", "balance" : 500 })
WriteResult({ "nInserted" : 1 })


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM