当前位置: 首页 > 面试题库 >

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

祁俊喆
2023-03-14
问题内容

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

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

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

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

Javadoc可以在这里找到。

我如何漂亮地打印此类对象?我肯定知道该类型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);

原始链接如下:将Bson对象转换为BsonDocument。



 类似资料:
  • 问题内容: 有没有一种方法可以告诉xml转换器按字母顺序对给定XML标签的所有属性进行排序?所以说… 会变成 我希望有这样的事情: 他们似乎在说什么:http : //docs.oracle.com/javase/1.4.2/docs/api/javax/xml/transform/OutputKeys.html 问题答案: 如前所述,到42岁时,您可以从XML中创建规范XML,这将为您按字母顺序

  • 问题内容: 如何以易于阅读的格式(对人类读者而言)显示JSON?我主要是在寻找缩进和空格,甚至可能是颜色/字体样式/等。 问题答案: 漂亮打印是在中本地实现的。第三个参数启用漂亮的打印并设置要使用的间距: 如果需要语法高亮显示,则可以使用一些正则表达式魔术,例如: 在这里查看操作:jsfiddle 或下面提供的完整代码段:

  • 问题内容: 我正在构建一个PHP脚本,该脚本将JSON数据提供给另一个脚本。我的脚本将数据构建到一个大的关联数组中,然后使用来输出数据。这是一个示例脚本: 上面的代码产生以下输出: 如果您的数据量很少,那就太好了,但是我希望遵循以下几点: 有没有办法在PHP中做到这一点而又没有丑陋的破解?似乎有人在Facebook上找到了答案。 问题答案: PHP 5.4提供了用于调用的选项。 http://ph

  • 问题内容: 我正在创建一个JSON文件的脚本。现在,我只是使用(PHP 5.2.x)将数组编码为JSON输出。然后,我将返回值打印到文件中并保存。问题是客户端希望能够打开这些JSON文件以提高可读性,因此我想在其中添加换行符并“漂亮打印” JSON输出。有关如何执行此操作的任何想法?我唯一可以看到的替代方法是完全不使用,而只是手动写入文件内容,并为每行添加自己的换行符。 这是我得到的: 这就是我想

  • 下面是我的例子: 如何为JSONARRAY启用漂亮的打印? 我认为这足以解释我的问题,但是这里有一些bla bla bla bla bla bla因为stackoverflow问我更多的细节,让我发布问题。

  • 问题内容: 我有一个字符串,它表示要打印的非缩进XML。例如: 应该变成: 语法高亮不是必需的。为了解决该问题,我首先将XML转换为添加回车符和空格,然后使用pre标记输出XML。为了添加新行和空白,我编写了以下函数: 然后,我像这样调用该函数: 这对我来说很好用,但是当我编写上一个函数时,我认为必须有更好的方法。所以我的问题是,给定XML字符串以将其漂亮地打印在html页面中,您是否知道更好的方