如何从 BSON 对象中获取可读字符串

How to get a readable string from BSON object

我有一个 org.bson.conversions.Bson 对象,我想把它变成可读的东西以便调试。

我试过为此使用 Mongo JSON 实用程序,但我收到 RuntimeExceptions,说它无法序列化类型 com.mongodb.client.model.Filters$AndFilter

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

这确实告诉了我一些关于 BSON 结构的信息,但我仍然希望它以某种方式具有可读性。

您可以使用 toBsonDocumentBson 实例转换为 BsonDocument,然后使用 BsonDocument.toJson()

例如...

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

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

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

... 将打印:

{ "name" : "Bob" }