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