2012-08-17 79 views
1

我是java新手。我如何在java中構建這個mongo查詢。任何幫助/提示將不勝感激。Mongodb Java查詢生成器

db.places.find({loc : { $near :[ -122.934326171875,37.795268017578] , $maxDistance : 50 } ,$or:[{"uid":"at"},{"myList.$id" :ObjectId("4fdeaeeede2d298262bb80") } ] ,"searchTag" : { $regex : "Union", $options: "i"} }); 
+0

你現在嘗試使用它來實現它。你能告訴我們嗎? – 2012-08-17 08:17:58

回答

5

通過使用QueryBuilder您可以創建您想要的查詢。我已經創建它如下。

QueryBuilder query = new QueryBuilder(); 
query.put("loc").near(-122.934326171875, 37.795268017578, 50); 
query.or(
     QueryBuilder.start("uid").is("at").get(), 
     QueryBuilder.start("myList.$id").is(new ObjectId("5024f2f577a59dd9736ddc38")).get() 
      ); 
query.put("searchTag").regex(Pattern.compile("Union",Pattern.CASE_INSENSITIVE)); 

當我打印查詢到控制檯,它看起來像:

{ "loc" : { "$near" : [ -122.934326171875 , 37.795268017578 , 50.0]} , 
    "$or" : [ { "uid" : "at"} , { "myList.$id" : { "$oid" : "5024f2f577a59dd9736ddc38"}}] , 
    "searchTag" : { "$regex" : "Union" , "$options" : "i"} 
} 

我沒有嘗試,而是希望它會工作。

+0

感謝您的回覆。讓我試着回到你身邊。 – atandon 2012-08-17 13:26:20

+1

它的工作原理。謝謝。 – atandon 2012-08-17 15:04:02