好吧,我回到这里重新提出一个旧的未解决的问题。我会尽力解释。
我得到以下密码查询:
neo4j-sh$ start n=node(1344) match (n)-[t:_HAS_TRANSLATION]-(p) return t,p;
+-----------------------------------------------------------------------------------+
| t | p |
+-----------------------------------------------------------------------------------+
| :_HAS_TRANSLATION[2224]{of:"value"} | Node[1349]{language:"hi-hi",text:"(>0@"} |
| :_HAS_TRANSLATION[2223]{of:"value"} | Node[1348]{language:"es-es",text:"hembra"} |
| :_HAS_TRANSLATION[2222]{of:"value"} | Node[1347]{language:"ru-ru",text:"65=A:89"} |
| :_HAS_TRANSLATION[2221]{of:"value"} | Node[1346]{language:"en-us",text:"female"} |
| :_HAS_TRANSLATION[2220]{of:"value"} | Node[1345]{language:"it-it",text:"femmina"} |
+-----------------------------------------------------------------------------------+
然后我有一个动态的语言数组(可以在任何查询中更改),可以按任何顺序排列,例如
["fr-fr","jp-jp","en-us", "it-it", "de-de", "ru-ru", "hi-hi"]
我需要一个查询来仅提取第一个[p],具体取决于数组的内容(在本例中为Node [1346] {language:“ en-us”,text:“ female”}},因为“ en-us”是在p列上第一个有macth的数组的第一个匹配项。
再次感谢您的耐心配合。
保罗
也许有一种更聪明的方法可以解决此问题,但至少此语句应该可以解决您的问题:
START n=node(1344) match (n)-[t:_HAS_TRANSLATION]-(p)
WITH n, collect(p.language) as languages
WITH n, filter(x in ["fr-fr","jp-jp","en-us","it-it","de-de","ru-ru","hi-hi"] where x in languages)[0] as lang
MATCH (n)-[t:_HAS_TRANSLATION]-(p)
WHERE p.language = lang
RETURN t,p
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句