在MongoDB中,$unwind
是一個用于展開數組字段的聚合操作符。它將包含數組的字段拆分成多個文檔,每個文檔只包含一個數組元素。這個操作通常用于對包含數組的字段進行分組和篩選。
例如,如果有一個包含數組的字段students
,可以使用$unwind
操作符將這個字段展開成多個文檔,每個文檔只包含一個學生信息。這樣就可以方便地對每個學生進行操作和篩選。
示例: 假設有以下文檔結構:
{
"_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
字段展開成了多個文檔,每個文檔只包含一個學生信息。