scala_mongodb-driver1

前两天研究scala mongodb groupby的问题,又有了另外种解决方案:

在看driver core源码的时候 发现传入的表达式在encode的时候有如下判断:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
final class BuildersHelper {

@SuppressWarnings("unchecked")
static <TItem> void encodeValue(final BsonDocumentWriter writer, final TItem value, final CodecRegistry codecRegistry) {
if (value == null) {
writer.writeNull();
} else if (value instanceof Bson) {
((Encoder) codecRegistry.get(BsonDocument.class)).encode(writer,
((Bson) value).toBsonDocument(BsonDocument.class, codecRegistry),
EncoderContext.builder().build());
} else {
((Encoder) codecRegistry.get(value.getClass())).encode(writer, value, EncoderContext.builder().build());
}
}

private BuildersHelper() {
}
}

发现会判断value是否为Bson,那么想到Filter也是Bson类型,所以有了如下表达式:

1
Filters.and(Filters.all("$code"),Filters.all("$userType"))
欢迎关注我的公众号:沉迷Spring
显示 Gitment 评论
0%