我正在建立一个活动网站。有两种类型的事件:
我需要保存日期和时间,以便我可以回答以下问题/疑问:
如果我们没有类型2的事件,我们可能会有以下squema:
但是因为我们有类型2的事件,它必须是不同的。我想过:
但我认为用这个squema做一个查询来解决问题1是不可能的。我错了吗?
您如何构建数据以便我可以回答这三个问题?
谢谢!
答案 0 :(得分:0)
这比我想象的容易。
首先,在MongoDB上,您不能将日期作为键。
模型是:
{
"name" : "Bob Dylan",
"category" : "Exhibition",
"dates" : [
{
"init" : ISODate("2015-01-08T08:00:00Z"),
"end" : ISODate("2015-01-08T19:00:00Z")
},
{
"init" : ISODate("2015-01-09T08:00:00Z"),
"end" : ISODate("2015-01-09T21:00:00Z")
},
{
"init" : ISODate("2015-01-10T08:00:00Z"),
"end" : ISODate("2015-01-10T21:00:00Z")
}
],
"createdAt" : ISODate("2015-01-09T16:33:51.338Z")
}
查询是:
return Events.find({
'dates.init' : { $gte: dateInit },
'dates.end' : { $lte: dateEndPlusOneDay }
});