Now I understood. So you have like 20 size_* fields, but the user will choose only 3 of them. With user-side I thought you mean the data of the specific product to add the min_price field. Maybe you can use too collections with the join feature, so each product will have 20 records in the prices collection and then you can sort by descending or something like that