sql >> Databáze >  >> NoSQL >> MongoDB

asociace mongomapper přeskočí duplikáty

To, co vidíte, je přesně správné z definice asociací a základního dotazu, který odpovídá klauzuli „in“. Osvěžte si představu o „in“ jako o „v sadě“ rozlišných objekty http://en.wikipedia.org/wiki/Set_(matematika) Načtení pro seznam uživatelů obsahuje základní dotaz na kolekci uživatelů s klauzulí $in, viz http://docs.mongodb.org/manual/reference/operator/query/in/

Pro přidružení @task.userlist získáte pouze dokumenty v kolekci User, které odpovídají klauzuli $in, kolekce User je primárním „předmětem“. Je zde významný sémantický rozdíl od

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

versus

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

Abyste získali „duplikáty“ z předchozího dotazu, museli byste mít duplicitní dokumenty v kolekci uživatelů, vážně.;-)

Doufám, že vám to pomůže pochopit.




  1. Mongodb nemůže najít objekt s příliš dlouhým _id

  2. nahrání souboru do složky na webu node-express pomocí multer s mongodb

  3. Jaký je rozdíl mezi Date.now() a Date.now v mongoose?

  4. Meteor - vykreslení jména vlastníka v seznamu objektů