Bạn có thể sử dụng $ giảm với $ concatArrays để làm phẳng cấu trúc dữ liệu của bạn và sau đó chạy $ unwind với $ ReplaceRoot để có được một thành viên cho mỗi tài liệu:
db.collection.aggregate([
{ "$project": {
"members": {
"$concatArrays": [
[{ "userID": "$userID", "userType": "$userType" }],
{ "$reduce": {
"input": "$clients",
"initialValue": [],
"in": {
"$concatArrays": [
"$$value",
[{ "userID": "$$this.userID", "userType": "$$this.userType" }],
"$$this.members"
]
}
}}
]
}
}},
{ "$unwind": "$members" },
{ "$replaceRoot": { "newRoot": "$members" }}
])