Database

[{"Lundi":["08:00","23:00"],"Mardi":["08:00","23:00"],"Mercredi":["08:00","23:00"],"Jeudi":["08:00","23:00"],"Vendredi":["08:00","23:00"],"Samedi":["08:00","23:00"],"Dimanche":["08:00","23:00"]}]

Query

db.collection.aggregate([{$unset:"_id"},{$project:{opening_times:{$map:{input:{$objectToArray:"$$ROOT"},in:{day:{$switch:{branches:[{case:{$eq:["Lundi","$$this.k"]},then:1},{case:{$eq:["Mardi","$$this.k"]},then:2},{case:{$eq:["Mercredi","$$this.k"]},then:3},{case:{$eq:["Jeudi","$$this.k"]},then:4},{case:{$eq:["Vendredi","$$this.k"]},then:5},{case:{$eq:["Samedi","$$this.k"]},then:6},{case:{$eq:["Dimanche","$$this.k"]},then:7}]}},open:{$dateFromParts:{year:{$year:"$$NOW"},month:{$month:"$$NOW"},day:{$dayOfMonth:"$$NOW"},hour:{$toInt:{$first:{$split:[{$first:"$$this.v"},":"]}}},minute:{$toInt:{$last:{$split:[{$first:"$$this.v"},":"]}}}}},close:{$dateFromParts:{year:{$year:"$$NOW"},month:{$month:"$$NOW"},day:{$dayOfMonth:"$$NOW"},hour:{$toInt:{$first:{$split:[{$last:"$$this.v"},":"]}}},minute:{$toInt:{$last:{$split:[{$last:"$$this.v"},":"]}}}}}}}}}},{$project:{open_today:{$first:{$filter:{input:"$opening_times",cond:{$eq:["$$this.day",{$isoDayOfWeek:"$$NOW"}]}}}}}},{$project:{restaurant:{$cond:{if:{$and:[{$gte:["$$NOW","$open_today.open"]},{$lt:["$$NOW","$open_today.close"]},]},then:"open",else:"close"}}}}])

Result