सिर्फ इसलिए कि आपकी क्वेरी में $or एक शीर्ष स्तर का ऑपरेटर होना चाहिए, इस तरह:
db.collection.find({
"$or": [
{
"metadata.text": { "$regex": ".*hello.*" }
},
{
"metadata.text": { "$regex": ".*world.*" }
}
]
})