您正确地说,在查询中指定多个字段的“默认”是每个字段都用作条件过滤器,因此是“与”运算。
您可以使用具有以下语法的$ 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);


