MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Meilleur moyen de stocker/obtenir des valeurs référencées à partir d'une liste dans Mongo/RectiveMongo ?

J'ai abordé ce problème précis il y a quelque temps.

Il n'y a pas de jointure dans mongo. Vous devez vous occuper manuellement de la jointure.

Vos options sont :

  1. Parcourez chaque entrée de commentaire et interrogez mongo pour l'utilisateur. c'est ce que vous faites.
  2. Obtenez tous les identifiants d'utilisateur à partir des commentaires, interrogez mongo pour les utilisateurs correspondant à ces identifiants, puis veillez à faire correspondre l'utilisateur au commentaire. C'est exactement ce que vous avez fait, mais un peu plus optimisé.
  3. Intégrez l'utilisateur dans les commentaires ou les commentaires dans les utilisateurs. Je ne le recommanderais pas, ce n'est probablement pas le bon endroit pour les commentaires/utilisateurs.
  4. Pensez à l'ensemble de données dont vous avez besoin de la part de l'utilisateur lorsque vous affichez un commentaire, et intégrez uniquement ces informations dans le commentaire

J'ai fini par choisir la dernière option.
Nous avons intégré l'identifiant de l'utilisateur, le prénom et le nom dans chaque commentaire.Cette information est peu susceptible de changer (peut-être même pas autorisée à changer après la création ?).
Si cela peut changer alors il n'est pas trop difficile d'adapter la méthode update-user pour mettre à jour les commentaires associés avec les nouvelles informations (nous l'avons fait aussi).
Donc, maintenant, aucune jointure n'est nécessaire.