sql >> データベース >  >> NoSQL >> MongoDB

mongomapperアソシエーションは重複をスキップします

    表示されている内容は、関連付けの定義と、「in」句に一致する基になるクエリから正確に正しいものです。「in」を distinctの「セット内」と考えてリフレッシュしてください。 オブジェクト http://en.wikipedia.org/wiki/Set_(mathematics)> userlistのフェッチには、$in句を含むUserコレクションの基になるクエリがあります。 http://docs.mongodb.org/manual/reference/operator/query/in/

    @ task.userlistアソシエーションの場合、$in句に一致するUserコレクション内のドキュメントのみを取得します。Userコレクションは主要な「サブジェクト」です。

    とは意味上の大きな違いがあります。
    User.where(:user_id.in => self.user_id)
    

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

    前のクエリから「重複」を取得するには、Userコレクションに重複するドキュメントを真剣に含める必要があります。;-)

    これがあなたの理解に役立つことを願っています。




    1. Mongoコピーコレクションとユーザー権限

    2. MongoDB / Geojson$geointersectsの問題

    3. Redis:ソートされたセットのスコアの合計

    4. Javaドライバーを使用してMongoDBの配列を更新する