【发布时间】:2018-08-20 23:43:49
【问题描述】:
我创建了一个与时间序列数据文档here 非常相似的数据库架构。
我最终得到了以下文件:
{
"_id" : "unique_name_1",
"data" : {
"2017" : {
"5" : {
"21" : {
"61" : [
{
"timestamp" : 1498162890460.0,
"value" : true
}
],
"84" : [
{
"timestamp" : 1498183202126.0,
"value" : false
}
]
},
"22" : {
"24" : [
{
"timestamp" : 1498215602957.0,
"value" : true
}
],
"61" : [
{
"timestamp" : 1498249322863.0,
"value" : false
}
]
}
},
"9" : {
"16" : {
"36" : [
{
"timestamp" : 1508249031987.0,
"value" : true
},
{
"timestamp" : 1508249429052.0,
"value" : false
}
]
}
}
}
}
}
“数据”下的第一个子文档代表年份。第二个子文档代表月。第三个子文档代表天。第四个子文档表示事件发生当天的15 分钟间隔。
我想每天查询数据库并获取第一个真值(如果可能的话,可能是紧随其后的假值),同时忽略所有后续条目。
每天的第一个条目可能是真的,也可能不是。数据不一定总是从真到假再到真。例如,我可能连续有多个真值,在这种情况下,我想忽略所有后续的真值。
如果您知道特定时间,这种结构非常适合查询特定时间,但我无法查询特定值。我应该只查询整个文档并在前端解析它吗?如果我想对数百个文档运行相同的查询,这将变得更加困难。
感谢您的帮助。
【问题讨论】:
标签: node.js mongodb mongodb-query aggregation-framework