如何在 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 个字符串
BsonDocument b1 = r1.toBsonDocument(BsonDocument.class, MongoClient.DEFAULT_CODEC_REGISTRY);
BsonDocument b2 = r2.toBsonDocument(BsonDocument.class, MongoClient.DEFAULT_CODEC_REGISTRY);
我正在使用 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 个字符串
BsonDocument b1 = r1.toBsonDocument(BsonDocument.class, MongoClient.DEFAULT_CODEC_REGISTRY);
BsonDocument b2 = r2.toBsonDocument(BsonDocument.class, MongoClient.DEFAULT_CODEC_REGISTRY);