Bonjour,

J'hésite sur la façon de structurer ma base de données MongoDB, j'ai besoin de personnes avec plus d'expérience que moi en NoSQL pour trancher.

Le problème :

Je dois stocker plusieurs catégories d'objets. Certains attributs sont génériques et présent pour tous les objets et d'autres attributs sont spécifique à la catégorie.

Par exemple, pour les catégories A, B et C :

A
------------
_id
date
prix
attributA1
attributA2
B
------------
_id
date
prix
attributB1
C
------------
_id
date
prix
attributC1
attributC2
attributC3
Je vais être amené à faire des requêtes :
  • sur toutes les catégories d'après les attributs communs (date et prix sur l'exemple)
  • sur certaines catégories (A et C par exemple) d'après les attributs communs + des attributs spécifiques (attributA1 et attributC2 par exemple)
  • sur une catégorie précise (B par exemple) d'après n'importe lequel de ses attributs


Comment structurer ma BDD ?

Je cherche autant la performance que la lisibilité.

Je ne vois que deux options :

--> Créer une collection par catégorie, ce qui implique de faire plusieurs requêtes dans certains cas.

ou

--> Enregistrer toutes les données dans une seule collection en ajoutant un attribut "catégorie".

D'après vous, quelle est la meilleurs solution ? Pourquoi ? En existe t-il d'autres ?