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



我正在生成MongoDB查询来取消过滤器API。

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); 

最新更新