Database

db={"percentages":[{to_top:"to_top1",to_bottom:"to_bottom1",percentage:6,updatetime:ISODate("2020-06-14T13:00:00Z"),p_id:1,seller:"seller1"},{to_top:"to_top2",to_bottom:"to_bottom2",percentage:7,updatetime:ISODate("2020-06-14T13:01:00.000Z"),p_id:2,seller:"seller2"},{to_top:"to_top3",to_bottom:"to_bottom3",percentage:7,updatetime:ISODate("2020-06-14T13:02:00Z"),p_id:-1,seller:"seller-1"},{to_top:"to_top4",to_bottom:"to_bottom4",percentage:10,updatetime:ISODate("2020-06-14T13:04:00Z"),p_id:999,seller:"seller999"}],"items":[{id:1,seller:"seller1"},{id:2,seller:"seller2"},{id:3,seller:"seller3"}]}

Query

db.percentages.aggregate([{$facet:{q1:[{$match:{percentage:{$gt:5},$expr:{$gt:["$updatetime",/**Change to $$NOW or $$CLUSTER_TIME*/{$subtract:[ISODate("2020-06-14T13:00:00Z"),/**"$$NOW",*/3600000]}]}}},{$lookup:{from:"items",let:{p_id:"$p_id",seller:"$seller"},pipeline:[{$match:{$expr:{$and:[{$eq:["$$p_id","$id"]},{$eq:["$$seller","$seller"]}]}}},{$limit:1}],as:"items"}},{$match:{items:{$size:0}}},{$addFields:{list:"$to_top",items:"$$REMOVE"}},{$sort:{percentage:-1}}],q2:[{$match:{percentage:{$gt:5},$expr:{$gt:["$updatetime",/**Change to $$NOW or $$CLUSTER_TIME*/{$subtract:[ISODate("2020-06-14T13:00:00Z"),/**"$$NOW",*/3600000]}]}}},{$lookup:{from:"items",let:{p_id:"$p_id",seller:"$seller"},pipeline:[{$match:{$expr:{$and:[{$eq:["$$p_id","$id"]},{$eq:["$$seller","$seller"]}]}}},{$limit:1}],as:"items"}},{$match:{items:{$not:{$size:0}}}},{$addFields:{list:"$to_bottom",items:"$$REMOVE"}},{$sort:{percentage:-1}}]}},{$project:{data:{$concatArrays:["$q1","$q2"]}}},{$unwind:"$data"},{$replaceWith:"$data"}])

Result