0
私はこの質問に複数の答えを見つけたので、私はそれらを試しても納得がいかないので、再度議論したい。ここに私のDBだ:私はレコードを取得することができていますjavaのタイムスタンプとmongoDBのタイムスタンプを比較して値の範囲を取り出す
long startTime = 0,endTime =0;
Date startDateObj = new Date();
Date endDateObj = new Date();
MongoDatabase mongoDb = MongoDBUtil.getInstance().getDB();
MongoCollection<Document> collection = mongoDb.getCollection(table);
String startDate = voAppDto.getStartDate();
String endDate = voAppDto.getEndDate();
if (startDate.length() > 0) {
calendarFrom.set(Calendar.YEAR, Integer.parseInt(startDate.split("-")[0]));
calendarFrom.set(Calendar.MONTH, Integer.parseInt(startDate.split("-")[1]) - 1);
calendarFrom.set(Calendar.DAY_OF_MONTH, Integer.parseInt(startDate.split("-")[2].substring(0, 2)));
startTime = calendarFrom.getTimeInMillis();
startDateObj.setTime(startTime);
}
if (endDate.length() > 0) {
calendarTo.set(Calendar.YEAR, Integer.parseInt(endDate.split("-")[0]));
calendarTo.set(Calendar.MONTH, Integer.parseInt(endDate.split("-")[1]) - 1);
calendarTo.set(Calendar.DAY_OF_MONTH, Integer.parseInt(endDate.split("-")[2].substring(0, 2)));
endTime = calendarTo.getTimeInMillis();
endDateObj.setTime(endTime);
}
MongoCursor<Document> cursor = collection.find(and(eq("Interface_Name","SDE-CONTROLLER"),eq("DataCenterId","[email protected]"),lt("TIMESTAMP",endDateObj),gt("TIMESTAMP",startDateObj))).iterator();
が、無:
"_id" : ObjectId("58510deae17ee5fc404a6f38"),
"Interface_Name" : "SDE-CONTROLLER",
"MsgCount" : "9798",
"SubsystemType" : 2,
"Mean" : "1224750",
"Dest" : "CDN",
"DataCenterId" : "[email protected]",
"SRC" : "SDE",
"peakMsgTimestamp" : "1481706908",
"PeakMsgCount" : "3087",
"SuccessMsgBytes" : "137172",
"VmId" : "vm1",
"TIMESTAMP" : ISODate("2016-12-14T09:16:26.459Z")
}
私のJavaコードがあります。 mongoDBで同じクエリを実行している間にレコードの不一致が発生しました。
Javaのバージョンは何ですか? – Veeram
私のJavaバージョンはJava 8です –
endDateとstartDateの形式は何ですか? – Veeram