首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向neography红宝石提供密码查询,以便根据关系和日期属性进行搜索?

如何向neography红宝石提供密码查询,以便根据关系和日期属性进行搜索?
EN

Stack Overflow用户
提问于 2017-05-16 17:57:44
回答 1查看 95关注 0票数 0

我要看的是:

https://github.com/maxdemarzi/neography/wiki/Scripts-and-queries

我试图为“查询”找到一个值,该值将返回以下内容:

  • 具有关系workingOn的节点
  • 创建日期是昨天(我使用了一个整数的时代时间,因为它似乎没有日期类型?)
  • 返回属性value

我试过:

代码语言:javascript
复制
start n=node(id) # where id is the reference node
match n-[:workingOn]-()
where has(n.date < Date.now.to_i and n.date > Yesterday.to_i) # yesterday is a Date for yesterday
return n

解决了:我从标记为已解决它的问题中获得了洞察力,但我所做的是创建一个查询字符串并使用内插来填充所需的值。例如query = "Match (n) -[#{relationship}]-(n2)....etc

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-16 18:42:20

您使用的是过时的Cypher语法。如果您使用的是最新版本的neo4j (3.1+),并且安装了适当的载脂蛋白C插件,下面的内容应该可以使用。(我假设在进行查询时传递id参数。如果不是,则用实际的ID值替换$id。)

代码语言:javascript
复制
WITH timestamp() AS now
MATCH (n)
WHERE ID(n) = $id AND
  (n)-[:workingOn]-() AND
  apoc.date.convert(apoc.date.convert(now, 'ms', 'd') - 1, 'd', 'ms') < n.date < now
RETURN n;

它使用timestamp()函数获取当前的划时代时间(以毫秒为单位),并使用APOC函数apoc.date.convert两次获得昨天开始的划时代时间。

它还将(n)-[:workingOn]-()模式移动到WHERE子句,以便每个n只生成一个行,即使该n具有多个workingOn关系。

(如果希望返回RETURN节点的value属性,则实际使用n子句。)

更新

GrapheneDB支持像APOC这样的插件。见他们的文件

要通过本机neo4j ID进行搜索,首先需要知道ID值。您可能需要先执行另一个查询才能得到它。但是,请注意,最好是分配和使用您自己的is,而不是本机is,因为如果删除原始is,可以回收这些is并将其用于新节点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44008470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档