sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan konverteres MongoDB Document til Jackson JsonNode direkte i Java

Jeg var i stand til at finde ud af en løsning ved hjælp af 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);
}

Jeg er ikke sikker på, om dette er den mest effektive måde, jeg antager, at det stadig er en bedre løsning end at konvertere BSOn til String og parse den streng. Der er en åben billet i mongoDB JIRA for at tilføje konvertering fra Document, DBObject og BsonDocument til tilBson og omvendt, hvilket ville forenkle hele processen meget.



  1. Sammenføj og formater række af objekter i Python

  2. Hvordan holder jeg dokumenter samlet med $unwind

  3. fejl TS2688:Kan ikke finde typedefinitionsfil for 'bson'

  4. req.body er udefineret betyder app