Database
[{"_id":{"$oid":"659dfebd24358fa4604510bb"},"date":{"$date":"2024-01-10T00:00:00.000Z"},"serviceScheduleId":{"$oid":"65805f7b63386df30aa43435"},"serviceId":{"$oid":"658006e463386df30aa4342e"},"branchOfficeId":{"$oid":"657fe4ba771ca41487a2f4f4"},"companyId":{"$oid":"6344ee8e91d97e8214cd5f25"},"serviceDetail":{"name":"Layanan Teller","code":"TELLER1","servantName":"Teler"},"serviceImageUrl":null,"serviceScheduleConfig":{"queueTicketCode":"TLR","openingHour":{"$date":"1970-01-01T01:00:00.000Z"},"closingHour":{"$date":"1970-01-01T11:00:00.000Z"},"isClosed":false,"processingTime":15,"reservationServantCount":2,"maxOnsiteQueue":0,"maxOnlineQueue":0,"maxReservation":0,"maxTotalQueue":0,"openingTicketRegistrationOnline":1440,"openingTicketRegistrationOnsite":1440,"openingTicketRegistrationReservation":1440,"onlineQueueAvailable":true,"onsiteQueueAvailable":true,"reservationQueueAvailable":true,"weekday":2},"reservations":[],"queue":[{"checkinTime":null,"user":{"registerTime":{"$date":"2024-01-10T02:18:51.930Z"},"ticket":"TLR-1","ticketInt":1,"status":"waiting","userId":{"$oid":"642bde870fa67b5141a5fe37"},"name":"Antonio Griezmann","address":"Jl. Tebet Barat Dalam No. 328","queueHistoryId":{"$oid":"659dfebd24358fa4604510bc"},"customerUserType":"member"},"queueType":"online"},{"checkinTime":null,"user":{"registerTime":{"$date":"2024-01-10T02:28:07.745Z"},"ticket":"TLR-2","ticketInt":2,"status":"incall","userId":{"$oid":"642bde870fa67b5141a5fe37"},"familyId":{"$oid":"659cf4755e46b822b966c14e"},"name":"Tegar","address":"Salatiga","queueHistoryId":{"$oid":"659e00ca24358fa4604510bd"},"customerUserType":"family"},"queueType":"online"},{"checkinTime":null,"user":{"registerTime":{"$date":"2024-01-10T02:29:18.469Z"},"ticket":"TLR-3","ticketInt":3,"status":"served","userId":{"$oid":"64c382c7291485b269bbdd42"},"name":"Taufik","address":null,"queueHistoryId":{"$oid":"659e00fe24358fa4604510be"},"customerUserType":"member"},"queueType":"reservation"},{"checkinTime":{"$date":"2024-01-10T03:14:42.374Z"},"user":{"registerTime":{"$date":"2024-01-10T03:06:12.658Z"},"ticket":"TLR-4","ticketInt":4,"status":"waiting","userId":{"$oid":"63ca4c243c8f9bbb79d14f58"},"name":"Santi","address":null,"queueHistoryId":{"$oid":"659e0ba26e339e2250015a8c"},"customerUserType":"member"},"queueType":"onsite"}],"servicings":[],"servant":[{"servantId":{"$oid":"64ea3dd8ff623dcdaa76b8f9"},"code":"servant-02","name":"servant 1","enterTime":{"$date":"2024-01-10T10:09:49.344Z"},"leaveTime":null,"servicingId":{"$oid":"659e6cedf2e6d18c760c1339"}}],"updatedTime":null,"updatedBy":null,"isDeleted":false,"createdTime":{"$date":"2024-01-10T02:18:51.930Z"}}]
Query
db.collection.aggregate([{"$match":{"_id":ObjectId("659dfebd24358fa4604510bb")}},{"$project":{"date":1,"serviceScheduleId":1,"serviceId":1,"branchOfficeId":1,"companyId":1,"queue":{"$filter":{"input":"$queue","cond":{"$and":[{"$eq":["$$this.queueType","online"]},{"$eq":["$$this.checkinTime",null]},{"$eq":["$$this.user.status","incall"]}]}},"$sortArray":{"input":"$queue","sortBy":{"user.ticketInt":-1}}}}}])