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

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

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

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

5
kinbiko 20 Дек 2017 в 13:10

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" }
8
glytching 20 Дек 2017 в 10:54