db.getSiblingDB().collection.find()
est une opération côté client. Ce n'est pas quelque chose que vous pouvez utiliser pour joindre des collections dans le cadre d'une requête. Pour cela, voir https://docs.mongodb.com/manual/ référence/opérateur/agrégation/recherche/
.
La deuxième chose que vous faites est de récupérer des champs imbriqués dans un document. Vous pouvez le faire avec $set et la notation par points. Voir spécifiquement l'exemple sur https://docs.mongodb.com/manual/reference/operator/aggregation/set/#adding-fields-to-an-embedded-document .
Vous devrez construire un seul pipeline d'agrégation qui fera tout ce que votre mélange actuel d'agrégation et de javascript fait en utilisant uniquement les opérations documentées dans https://docs.mongodb.com/manual/reference/operator/aggregation/ et les étapes documentées dans https://docs.mongodb.com/manual /reference/operator/aggregation-pipeline/ .