Combining $regex and $or operators in Mongo

The $or operator expects whole conditions so the correct form would be:

db.users.find({ "$or": [
    { "name": { "$regex": "^Da"} }, 
    { "name": { "$regex": "^Ali" }}
]})

Or of course using $in:

db.users.find({ "name": { "$in": [/^Da/,/^Ali/] } })

But it’s a regex so you can do:

db.users.find({ "name": { "$regex": "^Da|^Ali" } })

Leave a Comment