7

直截了当的问题,有人知道如何使用链接到 mongoDB 数据库的 morphia 进行通配符查询吗?

这就是 mongo 语句的样子:

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

我的吗啡声明如下:

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

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

如果有人可以告诉我它是否可能与吗啡一起使用,将不胜感激。

谢谢

4

3 回答 3

20

您所说的“通配符”实际上是“正则表达式”。

代表正则表达式的 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");
于 2012-09-11T14:17:14.233 回答
2

这也将起作用

DS.find(Model.class).field("filename").startsWithIgnoreCase("name").asList();
于 2015-09-21T11:10:57.250 回答
2

还可以这样做:

ds.createQuery(File.class)
    .criteria("filename").contains("test")
    .asList();
于 2016-12-20T22:28:13.713 回答