sql >> Database >  >> NoSQL >> MongoDB

Zoeken op meerdere collecties in MongoDB

Dit antwoord is achterhaald. Sinds versie 3.2 biedt MongoDB beperkte ondersteuning voor left outer joins met de $lookup aggregation-operator

MongoDB doet geen query's die meerdere collecties overspannen - periode. Wanneer u gegevens uit meerdere verzamelingen moet samenvoegen, moet u dit op applicatieniveau doen door meerdere query's uit te voeren.

  1. Query collectie A
  2. Haal de secundaire sleutels uit het resultaat en plaats ze in een array
  3. Queryverzameling B die die array doorgeeft als de waarde van de $in-operator
  4. De resultaten van beide zoekopdrachten programmatisch samenvoegen op de applicatielaag

Dit moeten doen zou eerder uitzondering dan norm moeten zijn. Als je vaak op die manier JOIN's moet emuleren, betekent dit ofwel dat je nog steeds te relationeel denkt bij het ontwerpen van je databaseschema of dat je gegevens gewoon niet geschikt zijn voor het op documenten gebaseerde opslagconcept van MongoDB.



  1. Redis Async API's

  2. Null Pointer Exception Mongo Aggregation verkrijgen met behulp van lentegegevens (dynamische velden)

  3. Overslaan/Mock Redis In Junit

  4. ActionCable op AWS:fout tijdens WebSocket-handshake:onverwachte responscode:404