อ้างอิงฐานข้อมูล MongoDB
ในส่วนก่อนหน้านี้ที่เรากล่าวถึงความสัมพันธ์ของการอ้างอิง MongoDB MongoDB ที่จะสร้างมาตรฐานโครงสร้างข้อมูลของเอกสาร
MongoDB มีสองอ้างอิง:
- คู่มืออ้างอิง (คู่มืออ้างอิง)
- DBRefs
DBRefs VS คู่มืออ้างอิง
พิจารณาสถานการณ์ดังกล่าวเรามีชุดที่แตกต่างกัน (address_home, address_office, address_mailing ฯลฯ ) เก็บไว้ในที่อยู่ที่แตกต่างกัน (ที่อยู่, ที่อยู่สำนักงานที่อยู่ทางไปรษณีย์ ฯลฯ )
ดังนั้นเมื่อเราเรียกที่อยู่ที่แตกต่างกันคุณจะต้องระบุคอลเลกชัน, คอลเลกชันของเอกสารจากเอกสารอ้างอิงหลายที่เราควรใช้ DBRefs
ใช้ DBRefs
รูปแบบ DBRef:
{ $ref : , $id : , $db : }
ความสำคัญของสามช่องแสดงโดย:
- $ Ref: ชื่อคอลเลกชัน
- Id $: หมายเลขอ้างอิง
- $ Db: ชื่อฐานข้อมูลพารามิเตอร์ที่ไม่จำเป็น
ตัวอย่างต่อไปนี้ใช้เอกสารข้อมูลของผู้ใช้ DBRef อยู่ฟิลด์:
{ "_id":ObjectId("53402597d852426020000002"), "address": { "$ref": "address_home", "$id": ObjectId("534009e4d852427820000002"), "$db": "w3cschoolcc"}, "contact": "987654321", "dob": "01-01-1991", "name": "Tom Benzamin" }
ข้อมูลที่อยู่ DBRef ระบุเอกสารอ้างอิงที่อยู่ภายใต้การ address_home ฐานข้อมูลคอลเลกชัน w3cschoolcc, ID เป็น 534009e4d852427820000002
รหัสต่อไปนี้เราต้องไปหาคอลเลกชันที่อยู่ที่ระบุ ID ผู้ใช้ข้อมูลที่ระบุโดยพารามิเตอร์ $ เตะ (ชุด address_home):
>var user = db.users.findOne({"name":"Tom Benzamin"}) >var dbRef = user.address >db[dbRef.$ref].findOne({"_id":(dbRef.$id)})
ตัวอย่างข้างต้นกลับข้อมูลที่อยู่คอลเลกชัน address_home:
{ "_id" : ObjectId("534009e4d852427820000002"), "building" : "22 A, Indiana Apt", "pincode" : 123456, "city" : "Los Angeles", "state" : "California" }