1
我想写一个密码查询,它允许您传入一组名称作为字符串来查找匹配的节点,然后返回每个节点的ID。我一直在玩弄语言和具有以下缺陷查询上来:如何查找节点的子集并在密码中返回它们的ID?
START person=node(*)
WHERE HAS (person.name)
WITH FILTER (name IN ['ryan','mike'] : person.name=name) AS matchedPersons
RETURN ID(matchedPersons)
Expected `matchedPersons` to be a node or relationship, but it was ``
如果我回到matchedPersons
而不是ID(matchedPersons)
,我得到这样的结果:
+------------------------------------------+
| matchedPersons |
+------------------------------------------+
| ["ryan"] |
| ["mike"] |
| [] |
+------------------------------------------+
3 rows
在我的数据库,我有三个人名有'ryan','mike'和'lucy'的节点。我想获取与FILTER子句中定义的集合中的名称匹配的人员的ID。我怎样才能得到每个姓名至少与集合中的一个姓名相匹配的人的ID?
有趣的阅读,但是我得到的ID使用Neo4JTemplate类建立关系。该类中的创建关系方法调用节点ID。 – 2014-10-02 13:38:53
不熟悉该课程或您想要在那里做什么。我所能建议的是,如果有一种替代方法处理“Node”对象而不是ID,那可能会更好,这样您可以让其他人担心ID的详细信息。我尽量不要惹他们,因为10次中有9次他们不是你想要的。你可能有一个例外,虽然因为你如何使用它们,我不确定。 – FrobberOfBits 2014-10-02 13:49:59
这些是节点的id,你可以使用'template.query()'方法,这个查询用一个命名参数替换集合并返回p,那么你有你的节点'template.query(“match(p :Person)在{names}中的p.name返回p“,map(”names“,asList(”ryan“,”mike“)))。(Node.class);' – 2014-10-02 21:18:41