mongodbでのunwindの使い方は何ですか?
MongoDBにおいて、$unwindは配列フィールドを展開するための集計演算子です。この操作は通常、配列を含むフィールドをグループ化やフィルタリングする際に使用されます。
例えば、配列を含むstudentsフィールドがある場合、$unwind演算子を使用してこのフィールドを複数のドキュメントに展開し、1つの学生情報のみを含む各ドキュメントを作成できます。これにより、各学生を簡単に操作および選択できます。
例えば、以下のドキュメント構造があると仮定してください:
{
"_id": 1,
"class": "A",
"students": ["Alice", "Bob", "Charlie"]
}
{
"_id": 2,
"class": "B",
"students": ["David", "Eve"]
}
$unwind操作子を使用する。
db.collection.aggregate([
{ $unwind: "$students" }
])
操作を実行すると、以下の結果が得られます。
{
"_id": 1,
"class": "A",
"students": "Alice"
}
{
"_id": 1,
"class": "A",
"students": "Bob"
}
{
"_id": 1,
"class": "A",
"students": "Charlie"
}
{
"_id": 2,
"class": "B",
"students": "David"
}
{
"_id": 2,
"class": "B",
"students": "Eve"
}
$unwind操作符は、元のドキュメント内のstudentsフィールドを複数のドキュメントに展開し、各ドキュメントには1人の学生情報のみが含まれています。