带时间戳的Neo4j密码查询

带时间戳的Neo4j密码查询,neo4j,cypher,Neo4j,Cypher,我试图查询数据库中最近创建的10个节点。我有一个尝试 MATCH (a:Post) RETURN a ORDER BY TIMESTAMP() LIMIT 10 我也试过这个 MATCH (a:Post) RETURN a ORDER BY TIMESTAMP() DESC LIMIT 10 如果我按照该顺序创建内容为{1,2,3}的节点,那么两个查询都会按照顺序1,2,3生成节点。关于为什么会发生这种情况的任何想法或想法???TIMESTAMP()表示查询执行的确切时间。它与节点或关系的创

我试图查询数据库中最近创建的10个节点。我有一个尝试

MATCH (a:Post) RETURN a ORDER BY TIMESTAMP() LIMIT 10
我也试过这个

MATCH (a:Post) RETURN a ORDER BY TIMESTAMP() DESC LIMIT 10
如果我按照该顺序创建内容为{1,2,3}的节点,那么两个查询都会按照顺序1,2,3生成节点。关于为什么会发生这种情况的任何想法或想法???

TIMESTAMP()
表示查询执行的确切时间。它与节点或关系的创建时间无关

这就是为什么两个查询得到完全相同的结果。您只是按当前时间排序,这没有多大意义,因为所有记录的当前时间都完全相同

默认情况下,Neo4j不存储任何创建时间戳。如果对您很重要,您需要将它们存储为附加属性。这是您应该使用标量函数的地方

CREATE (:Post {created_at: TIMESTAMP()})
完成后,按如下方式进行匹配和排序

MATCH (a:Post) RETURN a ORDER BY a.created_at LIMIT 10

请注意,您是根据
属性创建的
排序,而不是
TIMESTAMP()
标量函数。

一个简单的
按n排序不是吗。TIMESTAMP DESC LIMIT 10
解决了这个问题吗?我试图实现DESC,但它给出了相同的结果,您必须为节点指定时间戳属性还是自动创建?创建节点时必须自己指定:
CREATE(:Post{title:{title},content:{content},timestamp:timestamp()})
这更有意义,但是我创建了另一个测试场景,当我拉它们时,我可以看到时间戳和顺序。但是,当我匹配并按时间戳排序时,无论有无desc,它们都以相同的顺序出现??
CREATE (:Post {created_at: TIMESTAMP()})