2015-10-13 116 views
0

我有一個集合,比方說,測試其中包含一些100場像_1,_2,_3等建立的MongoDB查詢動態

現在我想形成MongoDB的查詢等,無論輸入是像1,2,5或5,6,7,8,9.

可以生成正確的查詢。請幫助MongoJack。

+0

那你試試這麼遠嗎? –

+0

@il_raffa我在集合中創建了另一個字段,其中包含所有索引(其中包含值爲1到100)並嘗試使用給定的輸入,但它不像我期望的那樣工作。這就是爲什麼發佈這個問題。 – Rohit

回答

0

嘗試串聯輸入以下劃線第一然後用加入字符串中的查詢,像:

StringBuilder sb = new StringBuilder(); 
sb.append("_"); 
sb.append(input); 
String field = sb.toString(); 

List<Foo> bar = coll.find(DBQuery.is(field, "foo")).toArray(); 
+0

我不確定它是否能夠正常工作。我已經附加了輸入字符串,但問題是動態添加字段,以查找,,, _(field,「foo」))_這真的是正確的嗎? – Rohit

+0

噢,你的意思是如果輸入是用逗號分隔的字符串,你想創建一個基於它的查詢,對吧? – chridam

+0

是的,它的輸入爲1,5,8然後我的查詢應該是這樣的DBQuery.and(DBQuery.is(「_ 1」,1),DBQuery.is(「_ 5」,5), \t \t \t \t \t DBQuery.is(「_ 8」,8))); 我要求這是動態的 – Rohit

0

我終於找到了解決辦法。我們可以做這樣的事情:

Query q = DBQuery.empty(); 
for(int i=0; i < params.length ; i++) {  
    q = q.or(DBQuery.greaterThan("_"+(Integer.valueOf(params[i])+1), 0)); 
} 

爲我工作