referencje bazy danych MongoDB
W poprzednim rozdziale wspomnieliśmy relacji MongoDB MongoDB odniesienie do ujednolicenia struktury danych dokumentu.
MongoDB ma dwie nazwy:
- Reference Manual (Ręczne Odniesienia)
- DBRefs
DBRefs vs podręcznika
Rozważmy taki scenariusz, mamy inny zestaw (address_home, address_office, address_mailing itp) przechowywane w innym adresem (adres, adres siedziby, adres pocztowy, etc.).
Tak więc, gdy wzywamy inny adres, należy określić zbiór, zbiór dokumentów z wielu dokumentów referencyjnych, powinniśmy używać DBRefs.
Stosować DBRefs
DBRef formy:
{ $ref : , $id : , $db : }
Znaczenie trzech dziedzin reprezentowanych przez:
- $ Ref: nazwa kolekcji
- $ Id: numer referencyjny
- $ DB: nazwa bazy danych, parametry opcjonalne
Poniższy przykład używa dokumentu dane użytkownika, adres DBRef pola:
{ "_id":ObjectId("53402597d852426020000002"), "address": { "$ref": "address_home", "$id": ObjectId("534009e4d852427820000002"), "$db": "w3cschoolcc"}, "contact": "987654321", "dob": "01-01-1991", "name": "Tom Benzamin" }
Poleadresu DBRef określa adres odwoływać dokumenty są pod address_home bazie w3cschoolcc zbiórki, id 534009e4d852427820000002.
Poniższy kod, musimy znaleźć kolekcję na identyfikatorze użytkownika informacje określone adresowej określonej przez parametr $ ref (address_home set):
>var user = db.users.findOne({"name":"Tom Benzamin"}) >var dbRef = user.address >db[dbRef.$ref].findOne({"_id":(dbRef.$id)})
Powyższe przykłady powrócił address_home danych adresowych kolekcji:
{ "_id" : ObjectId("534009e4d852427820000002"), "building" : "22 A, Indiana Apt", "pincode" : 123456, "city" : "Los Angeles", "state" : "California" }