HOWTO · MongoDB

MongoDB での左結合

この短いチュートリアルでは、MongoDB の左結合について説明します。

このページの内容

MongoDB はリレーショナル データベースではありません。 そのため、MongoDB ではリレーショナル操作を実行できません。 しかし、MongoDB で左結合のような操作を実行できる方法があります。

この短い記事では、MongoDB で左結合を実行する方法を学び、トピックに関連する例を見て簡単にします。

MongoDB での左結合

左結合は、MySQL、SQLite などのデータベース操作言語で一般的です。左結合は、左側のテーブルからすべてのデータを収集し、右側のテーブルから一致したデータのみを収集することを意味し、複数のテーブルのデータを一度に比較する場合に非常に効果的です。 データベース内の時間。

MongoDB には、別のコレクションからデータを収集するために使用できるキーワード名 $lookup があります。 このキーワードにより、以下の一般的な構文を使用して、特定のフィールドを持つコレクションを選択できます。

構文:

db.mydata.aggregate([
    { $lookup:
       {
         from: 'Your_Collection_Name',
         localField: 'Local_Field',
         foreignField: 'Foreign_Field',
         as: 'Show_As'
       }
     }
])

正しいコレクションにいるかどうかを確認する必要があることに注意してください。 特定のコレクションをオンにするには、コマンド use YourCollection を使用します。

以下の例は、MongoDB で左結合を作成する方法を示しています。

例:

db.mydata.aggregate([
    { $lookup:
       {
         from: 'mycollection',
         localField: 'id',
         foreignField: '_id',
         as: 'MainID'
       }
     }
])

上記のコマンド例を実行すると、コンソールに以下の出力が表示されます。

出力:

{ _id: ObjectId("63713371117701ff3d627b56"),
  Name: 'Alen',
  Email: 'abc@gmail.com',
  Year: 2018,
  MainID: [ sl: 0 ] }
{ _id: ObjectId("63713371117701ff3d627b57"),
  Name: 'Max',
  Email: 'max@gmail.com',
  Year: 2017,
  MainID: [ sl: 1 ] }
{ _id: ObjectId("63713371117701ff3d627b58"),
  Name: 'Ethen',
  Email: 'ethen@gmail.com',
  Year: 2019,
  MainID: [ sl: 2 ] }

結果の出力を見ると、MainID という名前の新しいフィールドが追加されていることがわかります。

この記事に示されているコマンドは MongoDB データベース用であり、コマンドは MongoDB コンソールで実行する必要があることに注意してください。