直截了当的问题,是否有人知道如何使用链接到mongoDB数据库的morphia进行通配符查询?
这就是mongo语句的样子:
Mongo:db.users.find({name:/Joe/})
SQL:SELECT * FROM users WHERE name LIKE "%Joe%"
我的morphia语句如下:
Morphia:ds.find(File.class, "filename","/test/").order("filename").asList();
我的数据库中有文件名,例如test1,test等
如果有人可以告诉我,如果甚至可以使用吗啡,那将非常感激。
由于
答案 0 :(得分:22)
您所谓的“通配符”实际上是“Regular Expression”。
表示正则表达式的Java类是Pattern。您可以将这些传递给Morphia的Query对象的过滤器方法。
// create a regular expression which matches any string which includes "test"
Pattern regexp = Pattern.compile("test");
// use this regular expression to create a query
Query q = ds.createQuery(File.class).filter("filename", regexp).sort("filename");
答案 1 :(得分:2)
这也可行
DS.find(Model.class).field("filename").startsWithIgnoreCase("name").asList();
答案 2 :(得分:1)
也可以这样做:
ds.createQuery(File.class)
.criteria("filename").contains("test")
.asList();