日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MongoDBDBRefs:多表關(guān)聯(lián)查詢
在《MongoDB關(guān)系》一節(jié)中,為了在 MongoDB 中實(shí)現(xiàn)規(guī)范化的數(shù)據(jù)庫結(jié)構(gòu),我們使用了引用式關(guān)系(也稱為手動(dòng)引用)的概念,在手動(dòng)引用中,我們需要將被引用文檔的 _id 存儲(chǔ)在其他文檔中。當(dāng)文檔中需要引用來自不同集合數(shù)據(jù)的情況下,我們可以使用 MongoDB 中的 DBRefs。

10年積累的網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有永昌免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

DBRefs 與手動(dòng)引用

假如有這樣一個(gè)數(shù)據(jù)庫,其中有一個(gè) users 集合,用來存儲(chǔ)用戶信息,以及其它一些集合(例如 address_home、address_office、address_mailing 等),用來存儲(chǔ)不同類型的地址數(shù)據(jù)。

當(dāng)我們需要通過 users 集合來引用這些存有地址信息的集合時(shí),需要根據(jù)地址類型來指定要查看的集合,在這種文檔需要引用其它多個(gè)集合中文檔的情況下,我們可以使用 DBRefs。

使用 DBRefs

DBRef 的語法形式如下:

{ $ref : value, $id : value, $db : value }

DBRefs 中有以下三個(gè)字段:

  • $ref:此字段用來指定要引用文檔所在的集合;
  • $id:此字段用來指定要引用文檔的 _id 字段值;
  • $db:可選字段,用來指定要引用文檔所在的數(shù)據(jù)庫名稱;
  • value:表示各個(gè)字段所對(duì)應(yīng)的值。

在下面示例的 users 文檔中,address 字段就使用了 DBRefs:

{
    "_id" : ObjectId("603c93f2f2c28d0fdf74ae7b"),
    "phone" : "15011226666",
    "pincode" : "01-01-1991",
    "name" : "bianchengbang",
    "address": {
        "$ref": "address_home",
        "$id": ObjectId("603c9355f2c28d0fdf74ae79"),
        "$db": "bianchengbang"
    }
}

上面的 address 字段指定了引用的文檔位于“bianchengbang”數(shù)據(jù)庫下的“address_home”集合中,文檔的 _id 值為 603c9355f2c28d0fdf74ae79。

下面通過一個(gè)具體的示例來演示 DBRefs 的使用:

> var user = db.users.findOne({"name":"bianchengbang"})
> var dbRef = user.address
> db[dbRef.$ref].findOne({"_id":(dbRef.$id)})
{
        "_id" : ObjectId("603c9355f2c28d0fdf74ae79"),
        "place" : "22 A, Indiana Apt",
        "postcode" : 123456,
        "city" : "Los Angeles",
        "country" : "California"
}

上面的示例代碼中 $ref 參數(shù)指定了集合的名稱(本例中是 address_home),并在其中動(dòng)態(tài)查找 _id 為 DBRef 中 $id 參數(shù)指定的文檔。


本文標(biāo)題:MongoDBDBRefs:多表關(guān)聯(lián)查詢
鏈接URL:http://www.5511xx.com/article/dhdjpdp.html