Database

[{"_id":ObjectId("5697d4d123acbf5e794ab031"),"expiration":NumberLong(1459864800),"reference":"http: //localhost: 1234","servicePath":"/","entities":[{"id":".*","type":"Room2","isPattern":"true","isTypePattern":false},{"id":".*","type":"Room3","isPattern":"true","isTypePattern":false}],"attrs":["humidity","temperature"],"conditions":["temperature"],"expression":{"q":"temperature>40","mq":"temperature.accuracy<1","geometry":"","coords":"","georel":""},"format":"JSON","status":"active","statusLastChange":1637226173.6940024},{"_id":ObjectId("5697d4d123acbf5e794ab032"),"expiration":NumberLong(1459864800),"reference":"http: //localhost: 1234","servicePath":"/","entities":[{"id":".*","type":"Room","isPattern":"true","isTypePatterdn":false},{"id":".*","type":"Room","isPattern":"true","isTypePatterdn":null}],"attrs":["humidity","temperature"],"conditions":["temperature"],"expression":{"q":"temperature>40","mq":"temperature.accuracy<1","geometry":"","coords":"","georel":""},"format":"JSON","status":"active","statusLastChange":1637226173.6940024}]

Query

db.collection.find({"$expr":{"$anyElementTrue":{"$map":{"input":"$entities","in":{$and:[{"$regexMatch":{"input":"Room1","regex":"$$this.id","options":"i"},},{$eq:[{$type:"$$this.isTypePattern"},"missing"]}]}}}}})

Result