2012-09-11 75 views
6

直接前进的问题,是否有人知道如何使用连接到mongoDB数据库的morphia进行通配符查询?Morphia mongoDB通配符查询

这是蒙戈声明会是什么样子:

蒙戈:db.users.find({name:/Joe/})
SQL:SELECT * FROM users WHERE name LIKE "%Joe%"

我的吗啡语句如下:

吗啡:ds.find(File.class, "filename","/test/").order("filename").asList();

我有文件名在我的数据库如test1,test等中

如果有人可以请告诉我,如果它甚至可能与吗啡它将不胜感激。

感谢

回答

20

你提到的“通配符”是什么,其实是一种“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"); 
+3

谢谢,这是我需要什么。 – user1479897

2

这也将工作

DS.find(Model.class).field("filename").startsWithIgnoreCase("name").asList(); 
0

也可以这样做:

ds.createQuery(File.class) 
    .criteria("filename").contains("test") 
    .asList();