Java QueryDsl与mongodb:需要帮助与mapPath进行字符串比较吗

Java QueryDsl与mongodb:需要帮助与mapPath进行字符串比较吗,java,mongodb,querydsl,Java,Mongodb,Querydsl,我有一个mongo查询,它正在生成预期的结果,下面是我的查询 db.getCollection('student').find({books: {$elemMatch: {"dynamicData.subject":/bbb/}}}) 我已经使用querydsl准备了一个查询,它是 orFn.accept(student.books.any().dynamicData.get(subject).eq(value)) 这对于值的精确匹配很好,我需要查询以类似sql的语法的方式运行,以便根据co

我有一个mongo查询,它正在生成预期的结果,下面是我的查询

db.getCollection('student').find({books: {$elemMatch: {"dynamicData.subject":/bbb/}}})
我已经使用querydsl准备了一个查询,它是

orFn.accept(student.books.any().dynamicData.get(subject).eq(value))
这对于值的精确匹配很好,我需要查询以类似sql的语法的方式运行,以便根据contains ignore case进行过滤。需要一些querydsl大师的帮助

以下是解决方案

Path=student.books.any().dynamicData.get(主题);
表达式常量=表达式。常量(值);
accept(Expressions.predicate(Ops.STRING_包含IC、path、常量));

在来自的帮助下解决了该问题
Path<?> path = student.books.any().dynamicData.get(subject);
Expression<String> constant = Expressions.constant(value);
orFn.accept(Expressions.predicate(Ops.STRING_CONTAINS_IC, path, constant));