Sie können dies erreichen, indem Sie ein $unwind
verwenden und dann eine $group
mit $push
, etwa so:
db.pitcrewdb.aggregate([
{
"$match": {
"run_number": "1",
"frames.frame_number": {
"$gte": 2
}
}
},
{
"$project": {
"_id": 0
}
},
{
"$unwind": "$frames"
},
{
"$match": {
"frames.frame_number": {
"$gte": 2
}
}
},
{
"$group": {
"_id": "$run_number",
"frames": {
"$push": "$frames"
}
}
}
])
das $unwind
wird Ihr Array zerstören und dann filtern Sie die Ergebnisse und nach $group
sie erneut
Oder Sie können dies auch mit $filter
tun
db.pitcrewdb.aggregate([
{
"$match": {
"run_number": "1"
}
},
{
"$project": {
"_id": 0,
"frames": {
$filter: {
input: "$frames",
as: "frame",
cond: {
$gte: [
"$$frame.frame_number",
2
]
}
}
}
}
}
])