DBRef:
MongoDB建模有兩種方式,一種是內嵌(Embed),另一種是連接(Link)。內嵌比較好理解,就是字段內容是個數組,數組內再包含文檔,而我們今天介紹的是另一種,稱為鏈接DBRef。由於MongoDB對單個文檔(document)有大小16M限制,設計時也要將這個限制納入考慮。
DBRef接收主要3個參數:
- collection: 指定原始數據所在的集合
- id: 指定引用文檔的id
- database: 指定所引用數據庫的名稱
示例:
創建people集合:
db.people.insert({name: "Sky", age: "20", "dep": "CSL"})
db.people.insert({name: "Bill", age: "22", "dep": "CSL"})
創建DBRef:
db.deps.insert({name: "CSL", num: 15, people: [ DBRef("people", ObjectId("59b51b36a36f6ee8c75b0f68"), "test"), DBRef("people", ObjectId("59b51b44a36f6ee8c75b0f69"), "test")]})
那么如何引用呢?
db.deps.findOne({"name": "CSL"}).people[0].fetch()
db.deps.findOne({"name": "CSL"}).people[1].fetch()