2012-09-11 32 views
6

सीधे आगे सवाल, क्या किसी को पता है कि एक mongoDB डेटाबेस से जुड़े morphia का उपयोग कर वाइल्डकार्ड क्वेरी कैसे करें?मॉर्फिया mongoDB वाइल्डकार्ड क्वेरी

मोंगो:

यह वही मोंगो बयान कैसा दिखेगा है db.users.find({name:/Joe/})
एसक्यूएल:

अफ़ीम का सत्त्व: फ़ाइल नाम ds.find(File.class, "filename","/test/").order("filename").asList();

मैं SELECT * FROM users WHERE name LIKE "%Joe%"

मेरे अफ़ीम का सत्त्व बयान की तरह दिखता है मेरे डेटाबेस में जैसे test1, test आदि

अगर कोई मुझे बता सकता है कि यह मॉर्फिया के साथ भी संभव है तो इसकी सराहना की जाएगी।

धन्यवाद

उत्तर

20

क्या आप एक "वाइल्डकार्ड" के रूप में उल्लेख तथ्य एक "Regular Expression" में है।

जावा क्लास जो नियमित अभिव्यक्तियों का प्रतिनिधित्व करता है Pattern है। आप इन्हें मॉर्फिया की क्वेरी ऑब्जेक्ट की फ़िल्टर विधि में पास कर सकते हैं।

// 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();