Вие сте прави, че „по подразбиране“ за указване на множество полета в заявка е, че всяко поле служи като условен филтър и следователно е операция И.
Можете да изпълнявате MongoDB заявки с клауза OR, като използвате операнда $or, който има следния синтаксис:
db.col.find({$or:[clause1, clause2]})
Където всяка клауза може да бъде заявка. $or не трябва да е операнд от най-високо ниво, но ако е MongoDB може да използва индекс за всяка отделна клауза.
Във вашия пример искате да завършите с тази заявка:
db.col.find({$or:[{"post_title", regex}, {"post_description", regex}]});
Което може да бъде конструирано в Java чрез :
DBObject clause1 = new BasicDBObject("post_title", regex);
DBObject clause2 = new BasicDBObject("post_description", regex);
BasicDBList or = new BasicDBList();
or.add(clause1);
or.add(clause2);
DBObject query = new BasicDBObject("$or", or);