Latest web development tutorials

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"
}