Byl jsem schopen přijít na nějaké řešení pomocí bson4jackson:
public static InputStream documentToInputStream(final Document document) {
BasicOutputBuffer outputBuffer = new BasicOutputBuffer();
BsonBinaryWriter writer = new BsonBinaryWriter(outputBuffer);
new DocumentCodec().encode(writer, document, EncoderContext.builder().isEncodingCollectibleDocument(true).build());
return new ByteArrayInputStream(outputBuffer.toByteArray());
}
public static JsonNode documentToJsonNode(final Document document) throws IOException {
ObjectMapper mapper = new ObjectMapper(new BsonFactory());
InputStream is = documentToInputStream(document);
return mapper.readTree(is);
}
Nejsem si jistý, jestli je to nejúčinnější způsob, předpokládám, že je to stále lepší řešení než převod BSOn na String a analyzování tohoto řetězce. V mongoDB JIRA je otevřená vstupenka pro přidání konverze z Dokumentu, DBObject a BsonDocument na toBson a naopak, což by celý proces velmi zjednodušilo.