Това, което виждате, е точно правилно от дефиницията на асоциациите и основната заявка, съответстваща на клаузата „in“. Опреснете мисленето си за „in“ като „в набора“ от distinct обекти http://en.wikipedia.org/wiki/Set_(mathematics) Извличането за потребителски списък има основна заявка за потребителската колекция с клауза $in, вижте http://docs.mongodb.org/manual/reference/operator/query/in/
За асоциацията @task.userlist ще получите само документите в потребителската колекция, които съответстват на клаузата $in, потребителската колекция е основният „субект“. Има значителна семантична разлика от
User.where(:user_id.in => self.user_id)
срещу
self.user_id.collect |user_id| do User.where(:user_id => user_id).first; end
За да получите "дубликати" от предишната заявка, ще трябва да имате дублирани документи в потребителската колекция, сериозно.;-)
Надяваме се, че това помага за вашето разбиране.