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

Recherche sur plusieurs collections dans MongoDB

Cette réponse est obsolète. Depuis la version 3.2, MongoDB a un support limité pour les jointures externes gauches avec l'opérateur d'agrégation $lookup

MongoDB n'effectue pas de requêtes qui s'étendent sur plusieurs collections - point final. Lorsque vous devez joindre des données de plusieurs collections, vous devez le faire au niveau de l'application en effectuant plusieurs requêtes.

  1. Interroger la collection A
  2. Obtenez les clés secondaires du résultat et placez-les dans un tableau
  3. Interroger la collection B en transmettant ce tableau comme valeur de l'opérateur $in
  4. Joignez les résultats des deux requêtes par programmation sur la couche d'application

Avoir à le faire devrait être plutôt l'exception que la norme. Lorsque vous avez fréquemment besoin d'émuler des JOIN de ce type, cela signifie soit que vous pensez encore trop relationnel lorsque vous concevez votre schéma de base de données, soit que vos données ne sont tout simplement pas adaptées au concept de stockage basé sur des documents de MongoDB.