sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man direkt konverterar MongoDB Document till Jackson JsonNode i Java

Jag kunde komma på någon lösning med hjälp av 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);
}

Jag är inte säker på om detta är det mest effektiva sättet, jag antar att det fortfarande är en bättre lösning än att konvertera BSOn till String och analysera den strängen. Det finns en öppen biljett i mongoDB JIRA för att lägga till konvertering från Document, DBObject och BsonDocument till toBson och vice versa, vilket skulle förenkla hela processen mycket.



  1. MongoDB-aggregat, hur man addToSet varje element av array i grupppipeline

  2. Mongoose sorterar det aggregerade resultatet

  3. MongoDB+Java:Inloggningsuppgifter saknas i användardokumentet

  4. Node.js visar bilder från Mongo's GridFS