références de base de données MongoDB
Dans la section précédente, nous avons parlé de la relation de référence MongoDB MongoDB pour normaliser la structure de données du document.
MongoDB a deux références:
- Manuel de référence (Références du Manuel)
- DBREFS
DBREFS vs manuel de référence
Considérons un tel scénario, nous avons un ensemble différent (address_home, address_office, address_mailing, etc.) stockés dans une adresse différente (adresse, adresse de bureau, adresse postale, etc.).
Ainsi, lorsque nous appelons adresse différente, vous devez spécifier une collection, une collection de documents à partir de plusieurs documents référencés, nous devrions utiliser DBREFS.
Utilisez DBREFS
formes DBRef:
{ $ref : , $id : , $db : }
Importance des trois domaines représentés par:
- $ Ref: nom de la collection
- $ Id: référence id
- $ Db: nom de la base, les paramètres facultatifs
L'exemple suivant utilise un document de données d'utilisateur DBRef, adresse de champ:
{ "_id":ObjectId("53402597d852426020000002"), "address": { "$ref": "address_home", "$id": ObjectId("534009e4d852427820000002"), "$db": "w3cschoolcc"}, "contact": "987654321", "dob": "01-01-1991", "name": "Tom Benzamin" }
champadresse DBRef spécifie les adresses référencées documents sont sous address_home base de données w3cschoolcc de collecte, id est 534009e4d852427820000002.
Le code suivant, nous devons trouver la collection à l'ID utilisateur de l'information d'adresse spécifiée spécifiée par $ ref paramètre (address_home set):
>var user = db.users.findOne({"name":"Tom Benzamin"}) >var dbRef = user.address >db[dbRef.$ref].findOne({"_id":(dbRef.$id)})
Les exemples ci-dessus sont retournés address_home données d'adresse de collection:
{ "_id" : ObjectId("534009e4d852427820000002"), "building" : "22 A, Indiana Apt", "pincode" : 123456, "city" : "Los Angeles", "state" : "California" }