Morphia mongoDB通配符查询

时间:2012-09-11 13:51:45

标签: regex mongodb wildcard morphia mongodb-java

直截了当的问题,是否有人知道如何使用链接到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等

如果有人可以告诉我,如果甚至可以使用吗啡,那将非常感激。

由于

3 个答案:

答案 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();