我是 Mongo DB 初学者。
我必须创建一个可以存储事件的集合。事件中的所有文档都将具有 FROM_TIME 和 TO_TIME 键,其值可以如下变化:
- {FROM_TIME:“1939 年 9 月 1 日”,TO_TIME:“1945 年 8 月”}
- {FROM_TIME:“1947 年 8 月 15 日”,TO_TIME:“1947 年 8 月 15 日”}
- {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:“1972 年 11 月”}
鉴于 FROM_TIME 和 TO_TIME 的随机发生,是否可以查询以下事件:
- 19世纪下半叶事件列表
- 8 月 15 日的事件列表等等。
我要求这里的人们提供线索,以防我需要重新考虑我的集合的结构,因为我对 Mongo(或任何其他非关系)DB 非常天真。
* * *第一次编辑从这里开始
我写了以下代码:
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);
在这里,我愚蠢地使用 String 来存储不完整的日期,但是我应该如何存储像 1992、2001、2012 这样的一年或像 January、September 或像 August 2010 这样的一个月?我不确定我是否期待正确的事情!请指导我如何处理这种“不完整”的时间安排。
* * *第一次编辑到此结束