2012-05-09 14 views
10

kullanıyorum temelde bu sorum şu: How to query MongoDB with "like"?Sorgu Sözdizimi i java

ama yani burada bütün cevapları tahmin Eğer mongodb kabuk komut satırını kullanırken geçerli olduğunu java kullanırken db.users.find({"name": /.*m.*/}) için eşdeğerdir.

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

cevap

12

yapmaya çalışıyorum nasıl referans olarak, ancak Filtreler sınıfını kullanarak:

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

thnx. Yazmalıyım demek istedim: Pattern regex = Pattern.compile ("/.* m. * /"); "m" içeren başlıkları bulmak istersem? – MoienGK

+2

@dave basitçe Pattern regex = Pattern.compile ("m") yazabilirsiniz; – sebastian

+0

+1 - MongoDB'nin "doğru olanı yapacağını" ve mümkünse bir normal ifadeyle verimli bir arama yapılacağını unutmayın (temel olarak regex'in yalnızca bir joker karaktere sahip olması durumunda) desen kullanarak –

0

Yukarıdaki örnek alınarak: Burada

i bu örnekte olduğu gibi bir regex kullanmalıdır bu sorun için

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); 
İlgili konular