Als uw subdocumentarray die u wilt weglaten, niet erg groot is. Ik zou het gewoon aan de applicatiekant verwijderen. Verwerking in MongoDB betekent dat u ervoor kiest om de rekenbronnen van MongoDB te gebruiken in plaats van uw toepassing. Over het algemeen is uw applicatie eenvoudiger en goedkoper op te schalen, dus implementatie op de applicatielaag heeft de voorkeur.
Maar in dit exacte geval is het niet te ingewikkeld om het in MongoDB te implementeren:
db.collection.aggregate([
{
$addFields: { // keep the first element somewhere
first: { $arrayElemAt: [ "$mainArray", 0] }
}
},
{
$project: { // remove the subdocument field
"mainArray.array": false
}
},
{
$addFields: { // join the first element with the rest of the transformed array
mainArray: {
$concatArrays: [
[ // first element
"$first"
],
{ // select elements from the transformed array except the first
$slice: ["$mainArray", 1, { $size: "$mainArray" }]
}
]
}
}
},
{
$project: { // remove the temporary first elemnt
"first": false
}
}
])