我正在使用java和MongoDb 3.0,並有一個查詢要轉換爲java代碼。將MongoDB3.0查詢轉換爲java
蒙戈DB查詢如下:
db.users.find({ $or: [ { updated_at:{ $gt:90, $lte:200}}, { updated_at:{ $gt:350, $lte:400}}, { updated_at:{ $gt:560, $lte:700}} ] })
的Java查詢該會像下面。
List<Document> orqueryList = new ArrayList<Document>();
List<String> list1 = new ArrayList<String>();
list1.add("90:200");
list1.add("350:400");
list1.add("560:700");
Document greaterQuery = new Document();
Document lessQuery = new Document();
Document lEQuery = new Document();
Document gEQuery = new Document();
for (String time : list1) {
String[] updatedAtt = tim.split(":");
gEQuery.put("$gte", Long.parseLong(updatedAtt[0]));
lEQuery.put("$lte", Long.parseLong(updatedAtt[1]));
greaterQuery.put("updated_at", gEQuery);
lessQuery.put("updated_at", lEQuery);
orqueryList.add(greaterQuery);
orqueryList.add(lessQuery);
}
query.put("$or", orqueryList);
但這不是工作作爲我的orqueryList
名單給我的尺寸3最後的值如下
[文檔{{received_at_server =文件{{$ GTE = 560}}}}, Document {{received_at_server = Document {{$ lte = 700}}}}, Document {{received_at_server = Document {{$ gte = 560}}}}, Document {{received_at_server = Document {{$ lte = 700}} }}, Document {{received_at_server = Document {{$ gte = 560}}}}, Document {{received_at_server = Document {{$ lte = 700}}}}]
@Roshan Quadra時但現在給了我最後的值。因爲它將最後一個值覆蓋到文檔中。文檔{{$或=文檔{{updated_at =文檔{{$ gte = 560}}}},文檔{{updated_at =文檔{{$ lte = 700}}}}]}}} } – Kamini
@Kamini andQuery引用指向最後一個值,因爲我們正在爲for循環重新創建list對象。我已更新查詢片段,該片段將打印預期結果。 –