Когато изпълнявате await Order.find({}).populate({
, Mongoose първо изпраща find
към сървъра mongod и връща курсор, който се предава за попълване.
След това Populate извлича всеки документ от курсора и изпраща отделно find
към user
колекция, за да извлече съвпадащия(те) документ(и), и итерира този курсор, поставяйки извлечените документи в масив в оригиналния документ.
Попълването може да повлияе на това кои документи са вградени в оригиналните документи, но няма възможност да премахва документи от оригиналния набор от резултати.
match
предадено за попълване ще означава, че само съответстващите потребители ще бъдат добавени към оригиналния документ, така че трябва да можете да използвате filter
за да елиминирате всички документи в резултата, които не съдържат потребители.