我想下面的集合中的比較日期日期MongoDB中
$ db.notifications.find(){ 「_id」 漸相比字符串: 的ObjectId( 「51a4467be4b0142fc8b80eda」), 「時間」 :「Tue May 28 11:24:03 IST 2013」,「KEY」:「VALUE1」} {「_id」: ObjectId(「51a4467be4b0142fc8b80edb」),「time」:「Tue May 28 11:24:03 IST 2013" , 「KEY」: 「VALUE2」}
使用
$ db.notifications.find({ 「時間」:{ 「$ GT」: 「週五5月31日00:00:00北京時間 2013」}})
,但我所觀察到的它是比較對待「時間」作爲 字符串不是日期,因此第二個命令返回我的 條目。
$ db.notifications.find({ 「時間」:{ 「$ GT」: 「週五5月31日00:00:00 IST 2013」}}){ 「_id」:的ObjectId( 「51a4467be4b0142fc8b80eda」 )「time」:「Tue May 28 11:24:03 IST 2013」,「KEY」:「VALUE1」} {「_id」: ObjectId(「51a4467be4b0142fc8b80edb」),「time」:「Tue May 28 11 :24:03 IST 2013" ,‘KEY’:‘VALUE2’}
能否請你幫我正確的查詢,也讓我知道如何 是正確的版本,可以用Java編寫。
非常感謝!
EDIT1:
我使用下面的代碼
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
dateFormat.setLenient(false);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String nowString = dateFormat.format(new Date());
Date nowDate = dateFormat.parse(nowString);
input.put("formattedDate", nowDate);
DBCollection collection = db.getCollection(<collection name>);
DBObject dbObject = (DBObject) JSON.parse(input.toString());
collection.insert(dbObject);"
保存日期和使用
DBObject query = QueryBuilder.start().put("formattedDate")
.greaterThan(prevDate).get();
DBCursor cursorDocJSON = collection.find(query);
我看到,我只是節省 「時間」 作爲日期查詢。爲什麼仍然有問題?
這是因爲你正在將它存儲爲一個字符串! –