Avec MongoDB 3.4, vous pouvez exécuter un pipeline d'agrégation qui utilise le $addFields
pipeline et un $filter
opérateur pour ne renvoyer que la Company
tableau avec des éléments qui correspondent à la condition donnée. Vous pouvez ensuite envelopper le $filter
expression avec $arrayElemAt
opérateur pour renvoyer un seul document qui incorpore essentiellement le $unwind
fonctionnalité en aplatissant le tableau.
Suivez cet exemple pour comprendre le concept ci-dessus :
db.users.aggregate([
{ "$match": { "UserName": "administrator" } },
{
"$lookup": {
"from": 'companies',
"localField": 'CompanyID',
"foreignField": 'CompanyID',
"as": 'Company'
}
},
{
"$addFields": {
"Company": {
"$arrayElemAt": [
{
"$filter": {
"input": "$Company",
"as": "comp",
"cond": {
"$eq": [ "$$comp.CompanyName", "edt5" ]
}
}
}, 0
]
}
}
}
])