MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

stowarzyszenie mongomapper pomija duplikaty

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ć.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wtyczka dziennika audytu Grails dla mongodb nie działa

  2. Błąd zależności czasu wykonywania MongoDB Reactive Streams ze złączem Alpakka Mongo ClassNotFoundException

  3. MongoDB:znajdź i znajdźOne z zagnieżdżonym filtrowaniem tablic

  4. Mongoose przekazuje dane z pomocnika Transaction

  5. Czy operator `$eq` działa z notacją z kropkami w tablicy?