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

Railsのモンゴイド基準は関連付けによって検索されます

    mongodbには結合がないことを覚えておく必要があります。リレーショナルデータベースでは、includes 結合クエリを形成し、クエリで両方のテーブルの列を使用できます。ただし、mongodbに結合がないため、同じことはできません。

    mongoidでは、includes たくさんのdb呼び出しを保存するだけです。関連付けられたレコードをフェッチしてIDマップに格納し、高速に取得しますが、クエリを実行している間、1つのクエリで処理できるのは1つのコレクションのみです。

    ユーザー名に基づく記事が必要な場合は、次の回避策をお勧めします:

    user_ids = User.where(username: 'erebus').only(:_id).map(&:_id)
    articles = Article.where(:user_id.in => user_ids)
    


    1. MongoDB Map /ReduceArray集約の質問

    2. Mongodb 3.0 java insertOne

    3. Dockerを使用するデバイスにMongoDBのスペースが残っていません

    4. MongoDB多次元配列プロジェクション