2012-09-11 23 views
6

Pregunta directa, ¿alguien sabe cómo hacer una consulta de comodín usando morphia vinculada a una base de datos mongoDB?Morphia mongoDB consulta de comodín

Esto es lo que se vería la declaración mongo como:

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

Mi declaración morfina Aspecto:

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

tengo los nombres de archivo en mi base de datos, como test1, prueba, etc.

Si alguien pudiera decirme si es posible con morphia, sería muy apreciado.

Gracias

Respuesta

20

Lo que ustedes se refieren como un "comodín" es en realidad un "Regular Expression".

La clase de Java que representa expresiones regulares es Pattern. Puede pasarlos al método de filtro del objeto Query de Morphia.

// 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

Gracias eso era exactamente lo que necesitaba. – user1479897

2

Esto también funciona

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

también puede hacer:

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