ドキュメントリレーションシップの確立
最初のステップでは、2 つの別々のコレクションを作成し、それらの間にリレーションシップを確立します。ここでは、一般的なシナリオである、authors と books を持つ図書館データベースをモデル化します。各書籍は著者をリファレンスします。
まず、MongoDB Shell を開きます。このインタラクティブなコマンドラインインターフェースを使用すると、MongoDB インスタンスと対話できます。
mongosh
シェルに入ると、test> プロンプトが表示されます。ここで library_database という新しいデータベースに切り替えます。データベースが存在しない場合、MongoDB は最初にデータを保存する際に自動的に作成します。
use library_database
次に、2 つのドキュメントを挿入して authors コレクションを作成します。各ドキュメントには、リファレンスに使用する ObjectId 型のユニークな _id があります。
db.authors.insertMany([
{
_id: ObjectId("660a1f5c9b8f8b1234567890"),
name: "Jane Austen",
nationality: "British"
},
{
_id: ObjectId("660a1f5c9b8f8b1234567891"),
name: "George Orwell",
nationality: "British"
}
]);
ドキュメントが正常に挿入されたことを示す確認メッセージが表示されるはずです。
出力例:
{
"acknowledged": true,
"insertedIds": {
"0": ObjectId("660a1f5c9b8f8b1234567890"),
"1": ObjectId("660a1f5c9b8f8b1234567891")
}
}
次に、books コレクションを作成します。各書籍ドキュメントでは、author_id フィールドに authors コレクションの対応する著者の ObjectId が格納されます。これにより、書籍とその著者との間にリンクが作成されます。
db.books.insertMany([
{
title: "Pride and Prejudice",
author_id: ObjectId("660a1f5c9b8f8b1234567890"),
year: 1813
},
{
title: "1984",
author_id: ObjectId("660a1f5c9b8f8b1234567891"),
year: 1949
}
]);
出力例:
{
"acknowledged": true,
"insertedIds": {
"0": ObjectId("660b2a1c9b8f8b1234567892"),
"1": ObjectId("660b2a1c9b8f8b1234567893")
}
}
これで、2 つのコレクションが正常に作成され、books コレクションのドキュメントが authors コレクションのドキュメントにリンクされました。次のステップのために MongoDB シェルを開いたままにしておいてください。