如何在 Java/Groovy 中测试 MongoDB 过滤器(BSON)的相等性?

How to test equality of MongoDB filters (BSON) in Java/Groovy?

我正在使用 Filters-API.

生成 MongoDB 查询
Bson r1 = Filters.and(Filters.eq("a","b"), Filters.eq("c","d"))
Bson r2 = Filters.and(Filters.eq("a","b"), Filters.eq("c","d"))

但是如何检查结果是否相等?例如:

r1.equals(r2)

r1.dump().equals(r2.dump())

不工作。

您可以做的一件事是:

  • 将 Bson 转换为 BsonDocument
  • 比较 JSON 个字符串

这是我在 https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/mongodb-user/peeL8wIWxwA/ZHpYglQEDQAJ

BsonDocument b1 = r1.toBsonDocument(BsonDocument.class, MongoClient.DEFAULT_CODEC_REGISTRY);
BsonDocument b2 = r2.toBsonDocument(BsonDocument.class, MongoClient.DEFAULT_CODEC_REGISTRY);