22

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

use user; 

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

userおよびorganization2 つの異なるデータベースにあります。

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

4

2 に答える 2

18

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

2 つの異なるデータベースでルックアップを使用してクエリを実行することはできません。 mongodb の$lookupサポートは、同じデータベース内の分割されていないコレクションへの左外部結合を実行します。

{
   $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 クロス データベース クエリ

于 2016-08-30T09:05:52.247 に答える
5

はい、次のmongodbドキュメントを読んでください:

Atlas Data Lake では、$lookup異なるデータベースからのコレクションの結合を実行するために使用できます。

https://docs.mongodb.com/datalake/reference/pipeline/lookup-stage

于 2021-02-05T06:35:16.533 に答える