Sim, tem jeito, passando o filtro como uma string. Exemplo:
BasicDBObject query = BasicDBObject.parse("{userId: {$gt: \"1\"}}");
FindIterable<Document> dumps = crapCollection.find(query);
Você também pode usar
com.mongodb.util.JSON
, mas não recomendo. É menos descritivo. DBObject dbObject = (DBObject)JSON.parse("{userId: {$gt: \"1\"}}");
Observe que isso pode ser vulnerável a injeções de SQL porque você mesmo analisa/cria o filtro.
Eu recomendo usar a consulta parametrizada do Jongo.