2012-09-11 74 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();