クエリで複数のフィールドを指定するための「デフォルト」は、各フィールドが条件付きフィルターとして機能するため、AND演算であるということは正しいです。
次の構文を持つ$orオペランドを使用して、OR句を使用してMongoDBクエリを実行できます:
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);