Sử dụng QueryBuilder, truy vấn của bạn sẽ giống như thế này
DBObject query = QueryBuilder.start().or(
QueryBuilder.start("key1").in(764).get(),
QueryBuilder.start("key2").in(keys).get(),
QueryBuilder.start().and("key3").is(3).and("key4").is(64).get()
).get();
Cân nhắc sử dụng jongo (một API trên mongo-java-driver), bạn có thể chỉ cần sao chép / dán các truy vấn từ shell:
collection.findOne("{$or:[{key1: {$in:[764]}},{key2:{$in:[#]}}, {$and:[{key3:3},{key4:67}]}]}", keys).as(People.class);