Database

db={"storesModel":[{"_id":"Main1","name":"Main Store 1"},{"_id":"Main2","name":"Main Store 1"},{"_id":"Primary1","name":"Primary Store 1"},{"_id":"Primary2","name":"Primary Store 2"}],"linkedStoreModel":[{"_id":"LS1","main_store":"Main1","primary_store_signed_by":"Bob","primary_store":"Primary1"},{"_id":"LS2","main_store":"Main2","primary_store_signed_by":"Bill","primary_store":"Primary1"},{"_id":"LS3","main_store":"Main1","primary_store_signed_by":null,"primary_store":"Primary2"},{"_id":"LS4","main_store":"Main2","primary_store_signed_by":"Betty","primary_store":"Primary2"},{"_id":"LS5","main_store":"Main1","primary_store_signed_by":null,"primary_store":"Rogue1"},{"_id":"LS6","main_store":"Main2","primary_store_signed_by":null,"primary_store":"Rogue1"}],"productStoreModel":[{"_id":"PS1","store":"Main1","product":"Product1"},{"_id":"PS2","store":"Main2","product":"Product1"},{"_id":"PS3","store":"Main1","product":"Primary2"},{"_id":"PS4","store":"Main2","product":"Primary2"},{"_id":"PS5","store":"Main1","product":"Secondary2"},{"_id":"PS6","store":"Main3","product":"jello"}]}

Query

db.linkedStoreModel.aggregate([{/** get "signed" mains for each primary*/"$group":{"_id":"$primary_store","signedMains":{"$addToSet":{"$cond":[{"$ne":["$primary_store_signed_by",null]},"$main_store",null]}}}},{/** get all products for signedMains*/"$lookup":{"from":"productStoreModel","localField":"signedMains","foreignField":"store","pipeline":[{"$group":{"_id":null,"products":{"$addToSet":"$product"}}}],"as":"productList"}},{/** format output*/"$project":{"_id":0,"primaryStoreName":"$_id","total_products":{"$size":{"$ifNull":[{"$first":"$productList.products"},[]]}},"products":{"$first":"$productList.products"}}}])

Result