Latest web development tutorials

relazioni MongoDB

rapporto MongoDB espresso interconnessioni tra più documenti in logica.

È possibile stabilire un contatto, grazie all'integrazione e riferimenti tra documenti.

Il rapporto MongoDB può essere:

  • 1: 1 (1 a 1)
  • 1: N (1-molti)
  • N: 1 (più coppie 1)
  • N: N (molti a molti)

Successivo consideriamo il rapporto tra l'utente e l'indirizzo dell'utente successivo.

Un utente può avere più indirizzi, è uno a molti.

Quanto segue è un documento di configurazione utente semplice:

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

Quanto segue è un documento di indirizzo struttura semplice:

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

rapporti incorporati

Utilizzando il metodo incorporato, possiamo inserire l'indirizzo dell'utente al documento per l'utente:

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

I dati di cui sopra è memorizzato in un unico documento, è più facile accedere e gestire i dati. Si potrebbe interrogare l'indirizzo dell'utente:

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

Nota: La querydb sopra indica database e gli utentie le collezioni.

Lo svantaggio di questa struttura dati è che se gli utenti e affrontare la crescente quantità di dati diventa sempre più grande, interesserà la lettura e scrittura.

Tipo di riferimento rapporto

Tipo di riferimento rapporto è spesso usato in approccio alla progettazione di database che i file di dati utente ei file di dati indirizzo dell'utente separatamente per costruire relazioni di documento di riferimento campoid.

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

L'esempio di cui sopra,documento address_ids contenente il campo oggetto dell'ID utente dell'array indirizzo dell'utente (ObjectId).

Possiamo leggere questi oggetti id indirizzo dell'utente (ObjectId) per ottenere informazioni dettagliate su l'indirizzo dell'utente.

Questo metodo richiede due interrogazioni, l'indirizzo del primo id utente oggetto query (ObjectId), il secondo indirizzo per ulteriori informazioni sulla query dell'utente da id.

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