我是一個Mongo DB初學者。Mongodb - 事件的數據類型
我必須創建一個可以存儲事件的集合。在這一事件的所有文件都會有FROM_TIME和TO_TIME鍵,其值可以作爲變化如下:
- {FROM_TIME: 「九月1,1939」,TO_TIME: 「1945年8月」}
- {FROM_TIME:「 1947年8月15日「,TO_TIME:」August 15,1947「}
- {FROM_TIME:」1857「,TO_TIME:」1858「}
- {FROM_TIME:」1944年12月7日11:00「,TO_TIME: 1944年12月7日14:40「}
- {FROM_TIME:」1971年1月「,TO_TIME:」November 1972「}
鑑於FROM_TIME和TO_TIME的隨機發生,纔有可能來查詢類似事件:在19世紀的事件
- 列表8月15日 等等。
我請求這裏的人提供線索,以防我需要重新考慮我的集合的結構,因爲我在Mongo(或任何其他非關係型)數據庫中相當幼稚。
* * * 1日編輯從這裏開始
我寫了下面的代碼:
DBObject dbObject = new BasicDBObject();
dbObject.put("EVNTATMC_ID", new ObjectId());
dbObject.put("EVNTATMC_DESC", "Pearl Harbour");
dbObject.put("EVNTATMC_FROM_TIME", Date.valueOf("1944-12-07"));
dbObject.put("EVNTATMC_TO_TIME", Date.valueOf("1944-12-07"));
dbObject.put("EVNTATMC_EVNTCMPD_ID", new ObjectId());
dbObject.put("EVNTATMC_MTRL_ID", null);
// dbObject.put("EVNTATMC_AUDIT", 1);
dbObject.put("EVNTATMC_REMARKS", "First insert");
eventAtomic.insert(dbObject);
dbObject = new BasicDBObject();
dbObject.put("EVNTATMC_ID", new ObjectId());
dbObject.put("EVNTATMC_DESC", "1857 Revolt");
dbObject.put("EVNTATMC_FROM_TIME", "1857");
dbObject.put("EVNTATMC_TO_TIME", "1858");
dbObject.put("EVNTATMC_EVNTCMPD_ID", new ObjectId());
dbObject.put("EVNTATMC_MTRL_ID", null);
// dbObject.put("EVNTATMC_AUDIT", 1);
dbObject.put("EVNTATMC_REMARKS", "Only years");
eventAtomic.insert(dbObject);
在這裏,我默默地用字符串保存不完整的日期,但我應該如何存儲只是像今年1992年,2001年,2012年還是像1月,9月那樣的一個月,或者像2010年8月那樣?我不確定我是否期待正確的事情!請指導我如何處理這種「不完整」的時間安排。
* * * 1編輯在這裏結束
喜alexjamesbrown, 我已經閱讀過日期文檔。在發佈問題之前,我不確定該數據類型是否允許僅存儲年份,僅月份和年份,僅月份或此類「不完整」日期數據;你也提供了一個線程說'你不能直接查詢按日期或日期組件的MongoDB收集'。 請指導。 –
你不能直接查詢「月」,但你可以查詢範圍...所以,按月查詢,按照我的例子,你可以查詢大於2012年1月1日並且小於2012年2月1日 – Alex
我有編輯我的問題 - 添加一個代碼片段,展示我的確切查詢。請看看並指導我。 –