To, co widzisz, jest dokładnie poprawne z definicji skojarzeń i bazowego zapytania pasującego do klauzuli „in”. Odśwież myśl o „in” jako „w zestawie” różnych obiekty http://en.wikipedia.org/wiki/Set_(matematyka) Pobieranie dla listy użytkowników zawiera zapytanie dotyczące kolekcji użytkowników z klauzulą $in, patrz http://docs.mongodb.org/manual/reference/operator/query/in/
W przypadku powiązania @task.userlist otrzymasz tylko te dokumenty w kolekcji Użytkownik, które pasują do klauzuli $in, kolekcja Użytkownik jest podstawowym „tematem”. Istnieje znacząca różnica semantyczna w porównaniu z
User.where(:user_id.in => self.user_id)
kontra
self.user_id.collect |user_id| do User.where(:user_id => user_id).first; end
Aby uzyskać "duplikaty" z poprzedniego zapytania, musiałbyś mieć zduplikowane dokumenty w kolekcji User, poważnie.;-)
Mam nadzieję, że to pomoże ci zrozumieć.