MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как директно да конвертирате MongoDB документ в Jackson JsonNode в Java

Успях да намеря някакво решение с помощта на 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);
}

Не съм сигурен дали това е най-ефективният начин, предполагам, че все още е по-добро решение от преобразуването на BSOn в String и анализирането на този низ. Има отворен билет в mongoDB JIRA за добавяне на преобразуване от Документ, DBObject и BsonDocument до toBson и обратно, което ще опрости много целия процес.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Груповите операции записват ли се в oplog като цяло?

  2. mongoimport Docker Failed:грешка при свързване към db сървъра:няма достъпни сървъри

  3. Вмъкване на данни в MongoDB - няма грешка, няма вмъкване

  4. Разбиране на MongoDB Aggregate и GroupBy

  5. Дали преместването на документи между колекции е добър начин за представяне на промените в състоянието в MongoDB?