sql >> Databáze >  >> NoSQL >> MongoDB

Jak přímo převést MongoDB Document do Jackson JsonNode v Javě

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.



  1. Komunikace mezi dvěma kontejnery Docker na macOS 10.12

  2. Redis Stack Exchange, jak odstranit nebo získat klíče podle vzoru

  3. Správné vypnutí připojení databáze MongoDB z ovladače C# 2.1?

  4. MongoDB - nelze použít .explain() k získání informací o dotazu v kódu C#?