Sprawdź dokumentację, której prawdopodobnie będziesz używać $ lub jako operatora potoku, ale takiego operatora nie ma:DOKUMENT
Zamiast tego możesz skonstruować operator $match, który jest w środku, może zawierać klauzulę lub
Coś takiego w powłoce:
db.collection.aggregate({$match:{$or:[{someKey:'someValue'},{someOtherKey:'someOtherValue'}]}})
To, co musisz zmienić, to coś takiego w JAVA:
Zmień to:
DBObject matchCriteria = new BasicDBObject("$or", or);
Do tego:
DBObject orCriteria = new BasicDBObject("$or", or);
DBObject matchCriteria = new BasicDBObject("$match", orCriteria);