【问题标题】:Neo4j CypherQuery to get nodes with (empty) propertyNeo4j CypherQuery 以获取具有(空)属性的节点
【发布时间】:2016-02-02 20:18:41
【问题描述】:

我想知道是否有办法获得具有 (empty) 属性的 neo4j 节点。当我创建节点并在单独的查询中用数据更新它时,我将它定义为一个空数组。我现在正在寻找一种方法来获取从未更新的节点。当数组中没有值时,neo4j 会自动将属性设置为 (empty)。有没有办法查询这些节点?我不能使用 IS NULLWHERE HAS NOT 查询,因为该属性存在。谢谢

编辑 这是我试图抓取的节点之一的属性示例。 Episodes 属性列为 (empty)

thumbnail:  http://is1.mzstatic.com/image/thumb/Music6/v4/0b/cf/e8/0bcfe8a9-79d4-76c1-645d-5f9b8bb56435/source/100x100bb.jpg
feedUrl:    http://www.iwantspace.com/publicbriefings/?feed=podcast&cat=6
name:   The Audio Collection – SPACE – Public Briefings
episodes:   (empty)
url:    https://itunes.apple.com/us/podcast/audio-collection-space-public/id367750633?mt=2&uo=4

【问题讨论】:

  • 可能值不是空的,实际上是字符串“(empty)”?

标签: database neo4j cypher


【解决方案1】:

所以你在节点上存储了一个空数组作为属性?您是否尝试在具有该属性的空数组的节点上进行匹配?

例如:

// Create a node with empty array for property names
CREATE (n:Person) SET n.names = []

MATCH (n:Person) WHERE n.names = [] RETURN n
// Returns the node previously created

Here 是一个演示此功能的 Neo4j 控制台。

【讨论】:

  • 打败我吧,我会给出完全相同的答案
  • 我尝试过该查询,但节点上的属性未显示为数组。它显示为 (empty)。我用其中一个节点的示例编辑了我的问题。谢谢
【解决方案2】:

这将为您提供没有属性情节的节点

MATCH (n) WHERE NOT HAS(n.episodes) RETURN n;

什么不利于剧集本身是节点?

【讨论】:

  • has 在 Neo4j 中不再存在,现在它被替换为 exists
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-14
相关资源
最近更新 更多