2012-09-11 11 views
6

Câu hỏi thẳng về phía trước, có ai biết cách thực hiện truy vấn ký tự đại diện bằng cách sử dụng morphia liên kết với cơ sở dữ liệu mongoDB không?Câu hỏi về ký tự đại diện morphia mongoDB

Đây là những gì tuyên bố Mongo sẽ trông như thế:

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

tuyên bố nha phiến của tôi trông giống như:

nha phiến: ds.find(File.class, "filename","/test/").order("filename").asList();

Tôi có tên tập tin trong cơ sở dữ liệu của tôi như test1, test etc

Nếu ai đó có thể xin vui lòng cho tôi biết nếu nó thậm chí có thể với morphia nó sẽ được đánh giá cao nhất.

Cảm ơn

Trả lời

20

Điều bạn gọi là "ký tự đại diện" thực ra là "Regular Expression".

Lớp Java thể hiện cụm từ thông dụng là Pattern. Bạn có thể chuyển chúng vào phương thức lọc của đối tượng Query của 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

Nhờ đó là chính xác những gì tôi cần. – user1479897

2

này cũng sẽ làm việc

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

Cũng có thể làm:

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