2011-08-03 6 views
2

Pour les attributs sur un document qui sont fréquemment utilisés pour la recherche, serait-il préférable de stocker en tant qu'association à la place? Par exemple, disons que nous avons beaucoup de «publications», et que chaque message a une catégorie en tant qu'attribut.mongodb: préférable de stocker comme attribut ou créer une association?

cependant nous savons que nous allons souvent filtrer par catégorie (par exemple. Trouver tous les messages avec la catégorie A)

dans de tels cas, serait-il préférable de créer une collection distincte pour « catégories », et ont les postes de référence?

+0

hein? vous voulez dire des catégories de référence des postes, non? –

+0

Je pensais avoir une collection de catégories, et pour chaque catégorie stocker une liste d'ID poste. – Daniel

Répondre

0

Dans mongodb d'habitude préférable d'éviter les associations chaque fois que possible (embedded documents), car avec les relations tout va travailler plus lentement. Mais en cas de catégorie et de poste, vous pouvez créer deux postes de collections distincts, catégories. Et lorsque vous avez besoin d'effectuer une recherche par catégorie, vous chargez l'identifiant de catégorie à partir de la collection de catégories par nom de catégorie, puis recherchez par identifiant de catégorie dans la collection de publications.

+0

super, merci. Dans ce cas, existe-t-il une différence de performance si je recherche par nom de catégorie plutôt que par identifiant? – Daniel

+0

Dans la collection posts, créez un index sur la catégorie ou un index composé comme category + post_date si vous utilisez des requêtes complexes. –

Questions connexes