2011-09-21 4 views
0

Je suis nouveau à développer avec mongodb. Cela peut être une question noobish mais je me demandais quel est l'avantage de créer un embedding 1: 1 dans mongodb? Pourquoi est-il utile sur les attributs qui contiennent des données d'intégration 1: 1?Mongodb 1 à 1 intégration

Dans le cas de l'incorporation 1: n, il est bon d'organiser un nombre indéfini d'objets sous un document.

Toutes les relations référencées sont utiles pour les requêtes vers et à partir de documents.

Quelle fonctionnalité supplémentaire les intégrations 1: 1 donnent-elles?

Merci

Répondre

1

Pensez-vous au modèle suivant?

{ 
    name: { 
    first: 'John', 
    second: 'James', 
    last: 'Jones' 
    }, 
    age: 20, 
    address: { 
    street: '2nd', 
    city: 'Warsaw' 
    } 
} 

Comme vous pouvez le voir évidemment, les raisons sont pragmatiques - regroupement des domaines connexes (comme name et address) ensemble est plus lisible par rapport à une table avec une longue liste plate des colonnes. De même, vous évitez les identifiants trop longs en utilisant la notation par points.

Il existe manifestement une différence de performance entre ces approches. Si les objets imbriqués sont énormes et que vous les utilisez rarement, il sera plus facile de fractionner le document (mais vous ne pourrez récupérer qu'une partie du document). D'un autre côté, si le document entier est utilisé la plupart du temps, il sera moins cher de le récupérer une fois (avec empressement) au lieu d'exécuter plusieurs requêtes de base de données.

Aussi MongoDB n'est pas transactionnel en soi, cependant les modifications d'un document unique sont atomiques.

+0

Y a-t-il d'autres avantages que de garder les données dans un format plus propre? Les requêtes sont-elles aussi efficaces sur plusieurs champs que sur des champs et des documents incorporés? – GTDev

+0

J'ai édité ma réponse pour répondre à vos préoccupations. –

+0

Merci, je pense que je vais repenser mon schéma de base de données avec un peu plus de plongées. – GTDev