Beim Ausführen von await Order.find({}).populate({
, sendet Mongoose zuerst den find
an den Mongod-Server und gibt einen Cursor zurück, der zum Auffüllen weitergegeben wird.
Populate ruft dann jedes Dokument vom Cursor ab und sendet ein separates find
an den user
-Sammlung, um das/die passende(n) Dokument(e) abzurufen, und iteriert diesen Cursor, wobei die abgerufenen Dokumente in einem Array im Originaldokument platziert werden.
Auffüllen kann beeinflussen, welche Dokumente in die Originaldokumente eingebettet werden, aber es hat keine Fähigkeit, Dokumente aus der ursprünglichen Ergebnismenge zu entfernen.
Die match
zum Auffüllen übergeben werden, bedeutet, dass nur übereinstimmende Benutzer zum Originaldokument hinzugefügt werden, also sollten Sie in der Lage sein, filter
zu verwenden alle Dokumente im Ergebnis zu entfernen, die keine Benutzer enthalten.