Wat u ziet, is precies correct uit de definitie van associaties en de onderliggende zoekopdracht die overeenkomt met de "in"-clausule. Verfris u door aan "in" te denken als "in de set" van onderscheiden objecten http://en.wikipedia.org/wiki/Set_(wiskunde) De fetch for userlist heeft een onderliggende query op de User-verzameling met een $in-clausule, zie http://docs.mongodb.org/manual/reference/operator/query/in/
Voor de @task.userlist-associatie krijgt u alleen de documenten in de User-verzameling die overeenkomen met de $in-clausule, de User-verzameling is het primaire "onderwerp". Er is een aanzienlijk semantisch verschil met
User.where(:user_id.in => self.user_id)
versus
self.user_id.collect |user_id| do User.where(:user_id => user_id).first; end
Om "duplicaten" van de vorige zoekopdracht te krijgen, zou u serieus dubbele documenten in de gebruikersverzameling moeten hebben.;-)
Ik hoop dat dit je begrip helpt.