Thực nghiệm (tùy thuộc vào kích thước bộ sưu tập của bạn), bạn có thể thử sử dụng $ unwind
lấy một includeArrayIndex
tham số:
db.collection.aggregate([
{
$group: {
_id: null,
docs: { $push: "$$ROOT" }
}
},
{
$unwind: {
path: "$docs",
includeArrayIndex: "index"
}
},
{
$replaceRoot: {
newRoot: {
$mergeObjects: [ "$docs", { place: "$index" } ]
}
}
}
])
Bạn cũng có thể xem xét $ out để thay thế tập hợp hiện có bằng kết quả tổng hợp ở trên