【发布时间】:2020-09-19 02:15:56
【问题描述】:
我正在处理 Neo4J 中定期更新的数据集,我想编写一个查询,该查询将为我获取数据库中给定键的每个值的最新数据节点,但我不确定如何去做。
这是我的数据外观的示例(简化):
[
{
"timestamp": "<timestamp - 3 days ago>",
"component": "a",
"value": "1"
},
{
"timestamp": "<timestamp - 1 day ago>",
"component": "a",
"value": "2"
},
{
"timestamp": "<timestamp - 6 days ago>",
"component": "b",
"value": "5"
},
{
"timestamp": "<timestamp - 4 days ago>",
"component": "b",
"value": "9"
},
{
"timestamp": "<timestamp - 2 days ago>",
"component": "b",
"value": "11"
},
...
}
从这个示例数据中,我想为每个唯一的component 返回一行,这将是基于时间戳的最新数据:
[
{
"timestamp": "<timestamp - 1 day ago>",
"component": "a",
"value": "2"
},
{
"timestamp": "<timestamp - 2 days ago>",
"component": "b",
"value": "11"
},
...
]
或者,如果我只返回我关心的特定列:
| component | value |
| --- | --- |
| a | 2 |
| b | 11 |
| ... | ... |
有没有一种简洁的好方法可以用 cypher 做到这一点?
【问题讨论】: