Je suis assez nouveau avec NoSQL, MongoDB. Comment gérer la relation many-to-many entre 2 ou plusieurs collections/documents? nous ferions mieux d'utiliser DBRefs ou d'intégrer? En fait, j'ai déjà lu le manuel MongoDB, mais je n'ai pas trouvé quelque chose sur la relation many-to-many. J'ai manqué quelques points? ou il n'y a pas ce genre de relation dans MongoDB? THX!MongoDB, relation entre documents ou collections
Répondre
Intégrer contre référence
C'est le problème de l'intégration par rapport référencement, et il est une source commune de confusion pour les nouveaux utilisateurs de MongoDB. Il existe une règle empirique simple qui fonctionne pour la plupart des scénarios de conception de schéma: Incorporer lorsque les objets enfants apparaissent toujours dans le contexte de leur parent. Sinon, stockez les objets enfants dans une collection séparée.
Intégrer ou référencer cela dépend de l'application. Supposons que vous construisiez une application simple dans MongoDB qui stocke les messages et les commentaires de blog.Si les commentaires apparaissent toujours dans un article de blog, et s'ils n'ont pas besoin d'être ordonnés de manière arbitraire (par date de publication, rang de commentaire, etc. on), puis l'intégration est très bien. Mais si, par exemple, vous voulez pouvoir afficher les commentaires les plus récents, quel que soit le post sur lequel ils apparaissent, alors vous voudrez faire référence. L'intégration peut fournir un léger avantage de performance, mais le référencement est beaucoup plus flexible.
Many-to-many
En SGBDR, vous utilisez une table de jointure pour représenter plusieurs à plusieurs relations; dans MongoDB, vous utilisez des clés de tableau. Par exemple, chaque produit contient un tableau d'ID de catégorie, et les produits et les catégories obtiennent leurs propres collections. Si vous avez deux documents de catégorie simples
{ _id: ObjectId("4d6574baa6b804ea563c132a"),
title: "Epiphytes"
}
{ _id: ObjectId("4d6574baa6b804ea563c459d"),
title: "Greenhouse flowers"
}
alors un produit appartenant aux deux catégories ressemblera à ceci:
{ _id: ObjectId("4d6574baa6b804ea563ca982"),
name: "Dragon Orchid",
category_ids: [ ObjectId("4d6574baa6b804ea563c132a"),
ObjectId("4d6574baa6b804ea563c459d") ]
}
- 1. Mongodb se bloque après avoir déplacé des documents entre les collections
- 2. Trouver une intersection entre deux collections dans MongoDb
- 3. MongoDB Collections
- 4. charge Lazy entre documents référencés sur MongoDB avec Doctrine ODM
- 5. collections MongoDB FIFO pile
- 6. Pourquoi MongoDB possède des collections
- 7. Lithium mongodb relation entre les modèles
- 8. Comment diviser 1 collection mongoDB en 2 ou plusieurs collections
- 9. MongoDB fusionne 2 collections très similaires. Documents existants - mise à jour, nouveaux documents - insérer
- 10. MongoDB - Utilisation correcte des collections?
- 11. Mongodb: plusieurs collections ou une grande collection w/index
- 12. Relation d'amitié avec MongoDB
- 13. OU relation entre les lieux
- 14. Comment obtenir toutes les collections dans MongoDB
- 15. mongodb Documents property
- 16. Interrogation Documents intégrés MongoDB
- 17. MongoDB PHP documents imbriqués
- 18. Importer plusieurs collections (nodejs, mongodb)
- 19. Stockage de documents secondaires dans MongoDB doc
- 20. Comment map/reduce deux collections MongoDB
- 21. MongoDB: BIllions de documents dans une collection
- 22. MongoDB: Devriez-vous toujours fournir des identifiants reliant d'autres collections ou simplement inclure des collections?
- 23. MongoDB: Upserting et documents sous
- 24. Cluster MongoDB et 100 000 collections plafonnées
- 25. Trier les documents dans des collections pendant l'extraction
- 26. Comment mapper des collections à mongodb en utilisant datanucleus/jdo?
- 27. Un moyen de sauvegarder des données (bases de données, collections, documents) dans mongodb
- 28. Comment organiser une relation plusieurs à plusieurs dans MongoDB
- 29. Comment rejoindre les collections MongoDB en Python?
- 30. Trouver des doublons dans plusieurs collections MongoDb
Ceci est une question très commune, Google recherche un peu vous obtiendrez 300 liens de lecture au moins; Mre que tout le monde peut fournir dans une seule réponse. Votre relation dépend trop fortement de vos données et de vos habitudes d'accès, en tant que telle cette question est trop vague dans son contexte actuel – Sammaye
Vous avez raison, de nombreuses relations ne sont pas touchées par les documents mongodb. Si vous avez de telles relations dans votre modèle relationnel, cela changera probablement considérablement lors de l'utilisation d'une base de données non relationnelle. Pour obtenir de l'aide, vous devrez expliquer votre modèle. – citykid
http://stackoverflow.com/questions/9475286/how-to-convert-many-to-many-relation-form-sql-to-mongodb-colllection – citykid