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