Máte pravdu, že "výchozí" pro specifikování více polí v dotazu je, že každé pole slouží jako podmíněný filtr, a tedy je to operace AND.
Dotazy MongoDB můžete provádět s klauzulí OR pomocí operandu $or, který má následující syntaxi:
db.col.find({$or:[clause1, clause2]})
Kde každá klauzule může být dotazem. $or nemusí být operand nejvyšší úrovně, ale pokud je to MongoDB, může použít index pro každou samostatnou klauzuli.
Ve vašem příkladu chcete skončit s tímto dotazem:
db.col.find({$or:[{"post_title", regex}, {"post_description", regex}]});
Které lze zkonstruovat v Javě pomocí :
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);