MongoDb: aggregation $lookup mit Filterung über die ausländischen Dokumente

Gegeben, ein paar collecitons:

1.- BENUTZER

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

2.- HAUSTIERE

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

Ich versuche, die aggregation mit $lookup-zum erstellen einer Gruppe von Objekten, die Benutzer mit Ihren Haustieren:

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

Aber ich würde gerne einen filter hinzufügen, sodass nur Tiere, die älter als 1 Jahr Hinzugefügt werden, um jeden Benutzer (über das Feld Alter im inneren des Haustier-Objekte).

Das problem ist, hinzufügen $match in der aggregation funktioniert nicht, weil es filtert Benutzer ohne alte Haustiere, und ich möchte, dass die Nutzer da zu sein, auch wenn Sie keine Haustiere haben.

Eigentlich bin ich auch versucht zu bekommen, nur die ältesten Haustiere, die von jedem Benutzer in der gleichen Art und Weise und ich habe auch nicht die Formel finden.

Irgendeiner Weise zum ausführen dieser Aktion innerhalb der aggregation?

Natürlich, zurzeit mache ich es nachher, auf der zurückgegebenen Objekte.

Vielen Dank im Voraus.

InformationsquelleAutor Gabriel | 2016-08-12
Schreibe einen Kommentar