Tôi đã có thể tìm ra một số giải pháp bằng cách sử dụng 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);
}
Tôi không chắc liệu đây có phải là cách hiệu quả nhất hay không, tôi cho rằng nó vẫn là giải pháp tốt hơn là chuyển đổi BSOn thành Chuỗi và phân tích cú pháp chuỗi đó. Có một Vé mở trong mongoDB JIRA để thêm chuyển đổi từ Tài liệu, DBObject và BsonDocument đến toBson và ngược lại, điều này sẽ đơn giản hóa toàn bộ quá trình rất nhiều.