sql >> データベース >  >> NoSQL >> MongoDB

MongoDBドキュメントを直接変換する方法JavaでJacksonJsonNodeを実行する

    私は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を文字列に変換してその文字列を解析するよりも優れたソリューションであると思います。 mongoDBJIRAにオープンチケットがあります Document、DBObjectからの変換を追加するため およびBsonDocument toBson 逆もまた同様です。これにより、プロセス全体が大幅に簡素化されます。



    1. デフォルトでMongoDBシェルできれいに印刷

    2. ObjectIdへのMongoDB集約プロジェクト文字列

    3. MongoDB / PHPは、ドキュメント内の特定の配列アイテムを削除します

    4. MongoDB + nodejs:ISODateフィールドをクエリする方法は?