Maison > Questions et réponses > le corps du texte
P粉0813607752023-09-03 00:53:03
Je recommande la première technique - elle est définitivement plus propre et probablement plus rapide. Vous devez vous assurer d'indexer le champ author
- tout comme vous indexez les clés étrangères dans un RDB.
P粉6765887382023-09-03 00:41:40
Il existe quelques différences entre ces deux méthodes
Je trouve cette approche plus intuitive et lisible, et donc plus facile à maintenir, notamment pour les requêtes complexes
Cependant, il n'est peut-être pas le plus efficace lorsqu'il s'agit de traiter de grandes quantités de données, car il effectuera des appels supplémentaires à la base de données pour chaque champ imbriqué. Cela peut devenir un goulot d'étranglement en termes de performances lorsque vous traitez un grand nombre de requêtes imbriquées complexes.
D'un autre côté, les opérations $lookup sont généralement plus performantes car elles utilisent un seul appel à la base de données pour se connecter et récupérer les données.
Cependant, à mesure que la complexité des requêtes augmente, les opérations $lookup peuvent devenir complexes et difficiles à lire et à maintenir. Cela peut nécessiter plus de connaissances du langage de requête MongoDB et peut ne pas être aussi simple et facile à utiliser que l'approche analyseur. Des agrégats mal écrits peuvent entraîner des problèmes de performances, alors soyez absolument sûr de ce que vous faites.
Donc, dans votre exemple, cela ne me dérangerait pas d'utiliser l'approche parseur, la première approche serait plus facile à lire/améliorer/maintenir même si l'utilisation de l'agrégation est plus rapide.
J'espère que cela aide :)