MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Durchsuchen Sie mehrere Sammlungen in MongoDB

Diese Antwort ist veraltet. Seit Version 3.2 bietet MongoDB eingeschränkte Unterstützung für Left Outer Joins mit dem $lookup-Aggregationsoperator

MongoDB führt keine Abfragen durch, die sich über mehrere Sammlungen erstrecken - Punkt. Wenn Sie Daten aus mehreren Sammlungen zusammenführen müssen, müssen Sie dies auf Anwendungsebene tun, indem Sie mehrere Abfragen durchführen.

  1. Abfragesammlung A
  2. Erhalte die Sekundärschlüssel aus dem Ergebnis und füge sie in ein Array ein
  3. Abfragesammlung B, die dieses Array als Wert des $in-Operators übergibt
  4. Fügen Sie die Ergebnisse beider Abfragen programmgesteuert auf der Anwendungsebene zusammen

Dies sollte eher die Ausnahme als die Regel sein. Wenn Sie häufig solche JOINs emulieren müssen, bedeutet dies entweder, dass Sie beim Entwerfen Ihres Datenbankschemas immer noch zu relational denken oder dass Ihre Daten einfach nicht für das dokumentbasierte Speicherkonzept von MongoDB geeignet sind.