web-dev-qa-db-ja.com

Mongodbの2つのデータベース間で$ lookup集計を行うことは可能ですか?

私はこのようなことをやろうとしています:

use user; 

db.user.aggregate([
    {
      $lookup:
        {
          from: "organization.organization",
          localField: "organizationId",
          foreignField: "uuid",
          as: "user_org"
        }
   }
])

userorganizationは2つの異なるデータベースにあります。

これが不可能な場合、代替手段は何ですか?

15

Mongodbの2つのデータベース間で$ lookup集計を行うことは可能ですか?

2つの異なるデータベースでルックアップを使用してクエリを実行することはできません。 $ lookup in mongodb support同じデータベース内のシャーディングされていないコレクションに対して左外部結合を実行します。

_{
   $lookup:
     {
       from: <collection to join>,
       localField: <field from the input documents>,
       foreignField: <field from the documents of the "from" collection>,
       as: <output array field>
     }
}
_

getSibling("dbname")を使用して、あるデータベースから別のデータベースにクエリを実行できます

_db.getSiblingDB('test').foo.find()
_

リファレンス- MongoDBクロスデータベースクエリ

13