sql >> Databasteknik >  >> NoSQL >> MongoDB

mongomappers förening hoppar över dubbletter

Det du ser är exakt korrekt från definitionen av associationer och den underliggande frågan som matchar "in"-satsen. Uppdatera du tänker på "in" som "i uppsättningen" av distinkt objekt http://en.wikipedia.org/wiki/Set_(mathematics) Hämtningen för användarlistan har en underliggande fråga i användarsamlingen med en $in-klausul, se http://docs.mongodb.org/manual/reference/operator/query/in/

För @task.userlist-associationen får du bara de dokument i användarsamlingen som matchar $in-satsen, användarsamlingen är det primära "ämnet". Det finns en betydande semantisk skillnad från

User.where(:user_id.in => self.user_id)

kontra

self.user_id.collect |user_id| do User.where(:user_id => user_id).first; end

För att få "dubbletter" från den tidigare frågan, måste du på allvar ha dubbletter av dokument i användarsamlingen.;-)

Hoppas att detta hjälper din förståelse.




  1. hur man installerar mongodb php-drivrutin på windows 8 och wamp-servern?

  2. Flera databaser i MongoDB för SaaS

  3. nodejs, redis. kontrollera om nycklar finns och skapa nya om inte

  4. Hur installerar man PHP MongoDB-drivrutinen för XAMPP på OSX?