Latest web development tutorials

relations MongoDB

relation MongoDB exprimé interrelations entre plusieurs documents dans la logique.

Vous pouvez établir un contact par encastrement et des références entre les documents.

La relation MongoDB peut être:

  • 1: 1 (1 à 1)
  • 1: N (1-many)
  • N: 1 (plusieurs paires 1)
  • N: N (plusieurs à plusieurs)

Ensuite, nous considérons la relation entre l'utilisateur et l'adresse de l'utilisateur suivant.

Un utilisateur peut avoir plusieurs adresses, il est relation un à plusieurs.

Ce qui suit est un document de configuration utilisateur simple:

{
   "_id":ObjectId("52ffc33cd85242f436000001"),
   "name": "Tom Hanks",
   "contact": "987654321",
   "dob": "01-01-1991"
}

Ce qui suit est un document d'adresse de structure simple:

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

relations intégrées

En utilisant la méthode intégrée, nous pouvons intégrer l'adresse de l'utilisateur au document de l'utilisateur:

   "_id":ObjectId("52ffc33cd85242f436000001"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin",
   "address": [
      {
         "building": "22 A, Indiana Apt",
         "pincode": 123456,
         "city": "Los Angeles",
         "state": "California"
      },
      {
         "building": "170 A, Acropolis Apt",
         "pincode": 456789,
         "city": "Chicago",
         "state": "Illinois"
      }]
} 

Les données ci-dessus sont stockées dans un seul document, vous pouvez accéder plus facilement et de maintenir des données. Vous pouvez interroger l'adresse de l'utilisateur:

>db.users.findOne({"name":"Tom Benzamin"},{"address":1})

Remarque: Ledb de requête ci - dessus indique la base de données et les utilisateurset les collections.

L'inconvénient de cette structure de données est que si les utilisateurs et répondre à la quantité croissante de données devient de plus en plus grande, affectera la lecture et d'écriture des performances.

Type de référence relation

Type de référence relation est souvent utilisé dans l' approche de conception de base de données que les fichiers de données d'utilisateur et le fichier de données d'adresse de l' utilisateur séparément pour établir des relations de document de référence de champid.

{
   "_id":ObjectId("52ffc33cd85242f436000001"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin",
   "address_ids": [
      ObjectId("52ffc4a5d85242602e000000"),
      ObjectId("52ffc4a5d85242602e000001")
   ]
}

L'exemple ci - dessus,document address_ids contenant le champ de l'ID utilisateur du réseau adresse de l' utilisateur (ObjectId) de l' objet.

Nous pouvons lire ces objets id l'adresse de l'utilisateur (ObjectId) pour obtenir des informations détaillées sur l'adresse de l'utilisateur.

Cette méthode nécessite deux requêtes, l'adresse de la première requête object id utilisateur (ObjectID), la seconde adresse pour plus d'informations sur la requête de l'utilisateur par id.

>var result = db.users.findOne({"name":"Tom Benzamin"},{"address_ids":1})
>var addresses = db.address.find({"_id":{"$in":result["address_ids"]}})