a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > MongoDB > 正文

MongoDB關系怎么理解?

2024-09-07 00:22:28
字體:
來源:轉載
供稿:網友
       文本給大家介紹是關于MongoDB關系,很多新手剛接觸MongoDB數據庫,可能對于MongoDB 的關系不是很清楚,因此下面給大家簡單介紹一下MongoDB關系的定義,嵌入式關系和引用式關系。
 
       MongoDB 的關系表示多個文檔之間在邏輯上的相互聯系。文檔間可以通過嵌入和引用來建立聯系。
 
       MongoDB 中的關系可以是:
 
1:1 (1對1)
1: N (1對多)
N: 1 (多對1)
N: N (多對多)
       接下來我們來考慮下用戶與用戶地址的關系。一個用戶可以有多個地址,所以是一對多的關系。以下是 user 文檔的簡單結構:
 
{
  "_id":ObjectId("52ffc33cd85242f436000001"),
  "name": "Tom Hanks",
  "contact": "987654321",
  "dob": "01-01-1991"
}
       以下是 address 文檔的簡單結構:
 
{
  "_id":ObjectId("52ffc4a5d85242602e000000"),
  "building": "22 A, Indiana Apt",
  "pincode": 123456,
  "city": "Los Angeles",
  "state": "California"
}
       嵌入式關系
 
       使用嵌入式方法,我們可以把用戶地址嵌入到用戶的文檔中:
 
{
  "_id":ObjectId("52ffc33cd85242f436000001"),
  "contact": "987654321",
  "dob": "01-01-1991",
  "name": "Tom Benzamin",
  "address": [
   {
     "building": "22 A, Indiana Apt",
     "pincode": 123456,
     "city": "Los Angeles",
     "state": "California"
   },
   {
     "building": "170 A, Acropolis Apt",
     "pincode": 456789,
     "city": "Chicago",
     "state": "Illinois"
   }]
}
       以上數據保存在單一的文檔中,可以比較容易的獲取和維護數據。 你可以這樣查詢用戶的地址:
 
>db.users.findOne({"name":"Tom Benzamin"},{"address":1})
       注意:以上查詢中 db 和 users 表示數據庫和集合。這種數據結構的缺點是,如果用戶和用戶地址在不斷增加,數據量不斷變大,會影響讀寫性能。
 
       引用式關系
 
       引用式關系是設計數據庫時經常用到的方法,這種方法把用戶數據文檔和用戶地址數據文檔分開,通過引用文檔的 id 字段來建立關系。
 
{
  "_id":ObjectId("52ffc33cd85242f436000001"),
  "contact": "987654321",
  "dob": "01-01-1991",
  "name": "Tom Benzamin",
  "address_ids": [
   ObjectId("52ffc4a5d85242602e000000"),
   ObjectId("52ffc4a5d85242602e000001")
  ]
}
       以上實例中,用戶文檔的 address_ids 字段包含用戶地址的對象id(ObjectId)數組。我們可以讀取這些用戶地址的對象id(ObjectId)來獲取用戶的詳細地址信息。這種方法需要兩次查詢,第一次查詢用戶地址的對象id(ObjectId),第二次通過查詢的id獲取用戶的詳細地址信息。
 
>var result = db.users.findOne({"name":"Tom Benzamin"},{"address_ids":1})
>var addresses = db.address.find({"_id":{"$in":result["address_ids"]}})



(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中文字幕欧美在线观看 | 亚洲经典一区二区三区 | 中文字幕久久综合 | 99色播| 北条麻妃99精品青青久久 | 日韩欧美一区二区三区免费观看 | 超碰综合| 国产精品观看 | 国产成人精品在线 | 97成人超碰| 久久久夜夜夜 | 精品久久一区二区 | 国产一区999 | 日韩一区在线观看视频 | 国产欧美综合在线 | 老司机午夜免费精品视频 | 欧美成人影院在线 | 国产精品呻吟久久av图片 | 看亚洲一级毛片 | 久久综合九色综合欧美狠狠 | 国产乱码精品一区二区三区忘忧草 | 91免费版在线观看 | 男女网站在线观看 | 国产成人宗合 | 91视频8mav | 黄色网址av | 欧美成a| av在线日韩 | 欧美xxxxxx视频 | 欧美伦理一区二区 | 国产精品欧美久久久久一区二区 | 日韩精品一区二区三区在线观看 | 亚洲一区二区三区在线播放 | 欧美日韩一区二区在线 | 成人亚洲视频 | 高清av在线 | 日本亚洲欧美 | 99日韩精品 | 久久精品一区二区三区四区 | 国产成人久久 | 欧美一区成人 |