Tutorial MongoD...LOG MASUK
Tutorial MongoDB
pengarang:php.cn  masa kemas kini:2022-04-21 17:49:03

Rujukan pangkalan data MongoDB


Dalam perhubungan MongoDB bab sebelumnya kami menyebut rujukan MongoDB untuk menyeragamkan dokumen struktur data.

Terdapat dua jenis rujukan MongoDB:

  • Rujukan Manual (Rujukan Manual)

  • DBRefs


DBRefs vs Manual Rujukan

Pertimbangkan senario di mana kami menyimpan alamat yang berbeza (alamat rumah, alamat pejabat, alamat surat-menyurat, dll.) dalam koleksi yang berbeza (alamat_rumah, alamat_pejabat, alamat_mel. , dsb.) alamat, dsb.).

Dengan cara ini, kita juga perlu menentukan koleksi apabila memanggil alamat yang berbeza Jika dokumen merujuk kepada dokumen daripada berbilang koleksi, kita harus menggunakan DBRefs.


Gunakan DBRefs

Bentuk DBRef:

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

Maksud tiga medan ialah:

  • $ ref : Nama koleksi

  • $id: id rujukan

  • $db: nama pangkalan data, parameter pilihan

Dalam contoh berikut, dokumen data pengguna menggunakan DBRef, dan alamat medan ialah:

{
   "_id":ObjectId("53402597d852426020000002"),
   "address": {
   "$ref": "address_home",
   "$id": ObjectId("534009e4d852427820000002"),
   "$db": "w3cschoolcc"},
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin"
}

alamat Medan DBRef menentukan bahawa dokumen alamat yang dirujuk ialah pangkalan data w3cschoolcc di bawah koleksi alamat_rumah, dan idnya ialah 534009e4d852427820000002.

Dalam kod berikut, kami menyatakan parameter $ref (address_home collection) untuk mencari maklumat alamat pengguna bagi id yang ditentukan dalam koleksi:

>var user = db.users.findOne({"name":"Tom Benzamin"})
>var dbRef = user.address
>db[dbRef.$ref].findOne({"_id":(dbRef.$id)})

Contoh di atas mengembalikan data alamat dalam koleksi alamat_rumah:

{
   "_id" : ObjectId("534009e4d852427820000002"),
   "building" : "22 A, Indiana Apt",
   "pincode" : 123456,
   "city" : "Los Angeles",
   "state" : "California"
}

Laman web PHP Cina