sql >> Database teknologi >  >> NoSQL >> MongoDB

skinner mongoid kriterier finde ved forening

Du skal huske på, at der ikke er joins i mongodb. I relationelle dbs, includes danner en joinforespørgsel, og du kan bruge kolonner fra begge tabeller i forespørgslen. Men på grund af manglende joins i mongodb, er det samme ikke muligt.

I mongoid, includes gemmer bare en masse db-opkald. Den henter og gemmer de tilknyttede poster i identitetskort for hurtig genfinding, men stadig under forespørgsel kan én forespørgsel kun omhandle én samling.

Hvis du har brug for artikler baseret på brugernavne, vil jeg foreslå følgende:

user_ids = User.where(username: 'erebus').only(:_id).map(&:_id)
articles = Article.where(:user_id.in => user_ids)


  1. MongoDB indlejret matrixforespørgsel

  2. MongoCommandException:Kommando mislykkedes med fejl 8000 (AtlasError):'intet SNI-navn sendt, sørg for at bruge en MongoDB 3.4+ driver/shell.'

  3. MongoDB Node.js native driver sluger lydløst `bulkWrite` undtagelse

  4. Når du fjerner dokumentet fra en begrænset samling i mongoDB, sker det gennem en fejl?