MongoDb: agrégation $recherche avec filtrage sur les documents étrangers

Donnée à un couple de collecitons:

1.- Les UTILISATEURS

{
  name: ...
  id: ...
  city: ...
  age: ...
  otherdata: ...
}

2.- Les ANIMAUX de compagnie

{
  name: ...
  owner: ...
  type: ...
  age: ...
}

Je suis en train d'utiliser l'agrégation de $recherche pour construire un ensemble d'objets qui représentent les utilisateurs avec leurs animaux de compagnie:

collectionusers.aggregate([
   {
     $lookup: {
       from: "pets",
       localField: "id",
       foreignField: "owner",
       as: "pets"
     }
   }
]);

Mais je voudrais ajouter un filtre de façon à ce que seuls les animaux âgés de plus de 1 an sont ajoutés à chaque utilisateur (à l'aide du champ de l'âge à l'intérieur de l'animal de compagnie objets).

Le problème est, en ajoutant $correspond à l'agrégation ne fonctionne pas car il filtre les utilisateurs sans vieux animaux de compagnie, et je veux que les utilisateurs d'être là, même s'ils n'ont pas les animaux de compagnie.

En fait, je suis aussi en train d'essayer d'obtenir que la plus ancienne des animaux de chaque utilisateur de la même manière et je n'ai pas trouver la formule.

Aucun moyen d'effectuer cette action au sein de l'agrégation?

Bien sûr, actuellement, je suis en train de faire par la suite, sur les objets retournés.

Merci d'avance.

OriginalL'auteur Gabriel | 2016-08-12