MongoDB におけるサブクエリの実装方法
MongoDBでは、サブクエリはアグリゲートメソッドを使用して実装できます。アグリゲートメソッドはパイプライン引数を受け取り、$lookup演算子を使用してサブクエリを実行できます。
注文情報を格納する orders コレクションと、製品情報を格納する products コレクションがあると仮定してください。すべての注文を照会し、注文に含まれる製品情報を注文ドキュメントに埋め込む必要があります。
まず、ordersという名前のコレクションを作成し、サンプルデータをいくつか挿入しましょう。
db.orders.insertMany([
{ _id: 1, product_id: 101, quantity: 2 },
{ _id: 2, product_id: 102, quantity: 1 },
{ _id: 3, product_id: 103, quantity: 3 },
]);
そして、products というコレクションを作成し、サンプルデータを挿入します。
db.products.insertMany([
{ _id: 101, name: 'Product 1' },
{ _id: 102, name: 'Product 2' },
{ _id: 103, name: 'Product 3' },
]);
現在、aggregateメソッドを使用してサブクエリを実行し、製品情報を注文ドキュメントに埋め込むことができます。
db.orders.aggregate([
{
$lookup: {
from: 'products',
localField: 'product_id',
foreignField: '_id',
as: 'product',
},
},
]);
上記のコードを実行することで、全ての注文情報とその注文の中の製品情報を格納した結果セットを取得できる。
MongoDB におけるサブクエリの実装方法は以上です。