sql >> Databasteknik >  >> NoSQL >> MongoDB

Sök på flera samlingar i MongoDB

Det här svaret är föråldrat. Sedan version 3.2 har MongoDB begränsat stöd för vänster yttre kopplingar med aggregationsoperatorn $lookup

MongoDB gör inte frågor som sträcker sig över flera samlingar - punkt. När du behöver sammanfoga data från flera samlingar måste du göra det på applikationsnivå genom att göra flera frågor.

  1. Frågesamling A
  2. Hämta de sekundära nycklarna från resultatet och placera dem i en array
  3. Frågesamling B som skickar den matrisen som värdet för $in-operator
  4. Sätt ihop resultaten av båda frågorna programmatiskt i applikationslagret

Att behöva göra detta borde snarare vara undantaget än normen. När du ofta behöver efterlikna JOINs på det sättet betyder det antingen att du fortfarande tänker för relationellt när du designar ditt databasschema eller att dina data helt enkelt inte är lämpade för det dokumentbaserade lagringskonceptet i MongoDB.



  1. Selleri beat + redis med lösenord kastar Inget Auth undantag

  2. Återställ från avbruten anslutning i redis pub/sub

  3. Så här gör du:Lägg till Cloudera Search i ditt kluster med Cloudera Manager

  4. En utvecklarguide till MongoDB Sharding