使用mongodb的QueryDsl:在与mapPath的String比较中需要帮助

时间:2017-03-31 11:31:09

标签: java mongodb querydsl

我有一个正在按预期生成结果的mongo查询,这是我的查询

db.getCollection('student').find({books: {$elemMatch: {"dynamicData.subject":/bbb/}}})

我使用查询dsl准备了一个查询,这是

orFn.accept(student.books.any().dynamicData.get(subject).eq(value))

哪个对于值的完全匹配工作正常,我需要查询表现为像sql一样的语法来过滤包含忽略大小写。需要一些querydsl gurus的帮助

1 个答案:

答案 0 :(得分:0)

以下是解决方案found it from here

Path<?> path = student.books.any().dynamicData.get(subject);
Expression<String> constant = Expressions.constant(value);
orFn.accept(Expressions.predicate(Ops.STRING_CONTAINS_IC, path, constant));