Как получить читаемую строку из объекта BSON

У меня есть org.bson.conversions.Bson объект, который я хотел бы превратить во что-то читаемое для отладки.

Я пробовал использовать для этого утилиту Mongo JSON, но получаю RuntimeExceptions, говоря, что он не может сериализовать тип com.mongodb.client.model.Filters$AndFilter

Bson query = ...
String json = com.mongodb.util.JSON.serialize(query);

Это кое-что мне говорит о структуре BSON, но я все же хотел бы, чтобы она была как-то читабельной.


person kinbiko    schedule 20.12.2017    source источник


Ответы (1)


Вы можете преобразовать экземпляр Bson в BsonDocument, используя toBsonDocument, а затем используйте BsonDocument.toJson().

Например ...

Bson bson = Filters.eq("name", "Bob");

BsonDocument asBsonDocument = bson.toBsonDocument(BsonDocument.class, 
    MongoClient.getDefaultCodecRegistry());

System.out.println(asBsonDocument.toJson());

... напечатает:

{ "name" : "Bob" }
person glytching    schedule 20.12.2017