Database

[{"_id":"ABC","properties":[{"_id":"123","weight":{"$numberInt":"0"},"name":"Alice"},{"_id":"456","weight":{"$numberInt":"1"},"name":"Bob"},{"_id":"789","weight":{"$numberInt":"1"},"name":"Charlie"}]}]

Query

db.collection.aggregate([{"$addFields":{"answer":{"$reduce":{"input":"$properties","initialValue":null,"in":{"$cond":{"if":{$or:[{$eq:["$$this.name","Alice"]},{$eq:["$$this.weight",0]}]},"then":"$$this._id","else":"$$value"}}}}}}])

Result