Querydsl对MongoDB $ all运算符的支持

时间:2018-12-21 12:33:20

标签: mongodb spring-data-mongodb querydsl

我正在使用spring数据和Querydsl访问MongoDB。 我的收藏集中的文档有一个带有数组值的字段tags。 我想找到tags包含所有给定值的文档。与MongoDB的$all运算符相同。 我尝试了以下方法:

Set<String> tags = ...["red", "blue"]

QDoc $ = QDoc.doc;
BooleanBuilder where = new BooleanBuilder();
...
if (!isEmpty(tags)) {
  tags.forEach(tag -> where.and($.tags.contains(tag)));
}
...
return docRepo.findAll(where, pageable);

使用上面的代码将导致查询中tags集的最后一个元素获胜。
{ "tags": "blue"}

是否可以通过Querydsl中的数组字段值子集查询文档?

0 个答案:

没有答案