Możesz użyć $let
z $arrayElemAt
aby zdefiniować zmienną tymczasową, a następnie odwołać się do niej, aby uzyskać text
pole:
db.collection.aggregate([
{
$addFields: {
text1: {
$let: {
vars: {
first: {
$arrayElemAt: [ "$arr", 0 ]
}
},
in: "$$first.text"
}
}
}
}
])