在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
字段展开成了多个文档,每个文档只包含一个学生信息。