使用Java MongoDb驱动程序进行Bson漂亮打印

我正在使用Java MongoDB驱动程序3.3版使用Mongo Aggregation Framework.我有一个聚集管道,它仅仅是List< Bson>类型的集合.我试图找到一种方法来漂亮地打印管道的每个阶段.

在每个元素上调用toString方法是不够的,因为每个阶段都是Bson接口的简单实现(即SimplePipelineStage)的实例.这个愚蠢的类没有toString方法的任何覆盖.

使用mongo java驱动程序Aggregates类的工厂方法创建管道,如下所示:

Aggregates.match(/* ... */)
Aggregates.project(/* ... */)
// And so on...

可以找到Javadoc here.

我如何漂亮地打印此类对象?我可以肯定类型BasicDbObject具有智能的toString实现,但是我找不到从Bson转换为BasicDbObject的方法.

非常感谢.

解决方法:

仔细搜索一下,我找到了一种漂亮打印Bson实例的解决方案.诀窍是将其转换为BsonDocument实例,该实例具有toString方法的实现,该方法返回相应JSON的字符串表示形式.

Bson bson = Filters.gt("a", 10);
BsonDocument bsonDocument = bson.toBsonDocument(BsonDocument.class, MongoClient.DEFAULT_CODEC_REGISTRY);
System.out.println(bsonDocument);

原始链接如下:Converting Bson object to BsonDocument.

上一篇:2linux输入子系统-按键驱动程序


下一篇:MongoDB(二)c客户端