Sử dụng DBRefs trong MongoDB

Có 3 trường trong DBRefs:

$ref: Trường này xác định Collection của Document được tham chiếu.

$id: Trường này xác định trường _id của Document được tham chiếu.

$db: Trường này là một trường tùy ý, chứa tên của Database mà Document được tham chiếu ở trong đó.

Giả sử một user document có trường address dạng DBRefs như sau:

{

    "_id": ObjectId("53402597d852426020000002"),

    "address": {

        "$ref": "address_home",

        "$id": ObjectId("534009e4d852427820000002"),

        "$db": "tutorialspoint"
    },

    "contact": "987654321",

    "dob": "01-01-1991",

    "name": "Tom Benzamin"

}

Trường address dạng DBRefs ở đây xác định rằng address document được tham chiếu ở trong address_home collection dưới tutorialspoint database và có một id là: 534009e4d852427820000002.

Phần code sau sẽ nhìn vào Collection được xác định bởi tham số $ref (là address_home trong trường hợp này) cho một Document với id được xác định bởi tham số $id trong DBRefs.

>var user = db.users.findOne({"name":"Tom Benzamin"})

>var dbRef = user.address

>db[dbRef.$ref].findOne({"_id":(dbRef.$id)})

Code trên trả về address document sau đây, mà có mặt trong address_home collection:

{

    "_id" : ObjectId("534009e4d852427820000002"),

    "building" : "22 A, Indiana Apt",

    "pincode" : 123456,

    "city" : "Los Angeles",

    "state" : "California"

}

Last updated