2012-05-09 12 views
10

उपयोग कर रहा हूँ मूल रूप से यह मेरा सवाल यह है: How to query MongoDB with "like"?क्वेरी सिंटेक्स मैं जावा

लेकिन मैं यहाँ में सभी जवाब लगता है कि जब आप MongoDB शेल कमांड लाइन का उपयोग कर रहे लागू होते हैं, तो क्या जब हम जावा का उपयोग कर रहे हैं तो db.users.find({"name": /.*m.*/}) के बराबर है। ऊपर के उदाहरण ले रहा है

BasicDBObject query = new BasicDBObject(); 
Pattern regex = Pattern.compile("the title you are looking for"); // should be m in your case 
query.put("title", regex); 

उत्तर

12

करने के लिए इस मुद्दे के लिए कोशिश कर रहा हूँ संदर्भ के रूप में, लेकिन फ़िल्टर वर्ग का उपयोग:

Pattern regex = Pattern.compile("title you look for"); 
Bson filter = Filters.eq("nombre", regex)); 
+0

thnx। तुम्हारा मतलब है कि मुझे लिखना चाहिए: पैटर्न regex = Pattern.compile ("/.* एम। * /"); अगर मैं शीर्षक ढूंढना चाहता हूं जिसमें "एम" है? – MoienGK

+2

@ डेव आप बस पैटर्न regex = Pattern.compile ("m") लिख सकते हैं; – sebastian

+0

+1 - ध्यान दें कि मोंगोडीबी "सही काम करेगा" और यदि संभव हो तो रेगेक्स के साथ एक कुशल खोज करेगा (मूल रूप से जब रेगेक्स में अंत में वाइल्डकार्ड होता है) –

0

:

यहाँ है मैं कैसे आप इस उदाहरण में किसी रेगुलर एक्सप्रेशन का उपयोग करना चाहिए

DBCollection coll = MongoDBUtil.getDB().getCollection("post_details");  
    BasicDBObject query = new BasicDBObject();  
    query.put("price", new BasicDBObject("$gt", 5).append("$lt", 8)); 
/*what should i write instead of this line*/ 
      query.put("title", "/.*m.*/"); 

    DBCursor cur = coll.find(query); 
संबंधित मुद्दे