[英]Using expression for limit in Neo4j cypher query
我的密碼查詢是
start item= node:jobSearch ("title:Job*") WITH collect(item) as items limit 10 RETURN items as job union start item2= node:jobSearch ("title:Job*") WITH collect(item2) as item2s , count(item2) as paths match (job1:Job)-[relation]-(relationNode) where
(relationNode.name IN ['java','Dance','Programming'] OR relation.duration IN
['java','Dance','Programming']) AND NOT (job1 IN item2s) AND paths < 10 RETURN job1 as job limit 8
我在上面的查詢中使用了限制8,我想使用10 - 路徑。 我怎么用這個?
因此,您似乎應該能夠使用limit子句中的表達式執行此操作,或者可能通過在上一個WITH
語句中計算正確的整數(例如, WITH (10-paths) as resultCount (...) limit resultCount
)但我測試了它,它將無法正常工作。
只是為了踢,我查看neo4j源代碼,看看我是否遺漏了一些東西。 在這個源文件中,您可以看到一些條款和解密密碼語言本身的規則。
壞消息是LIMIT
表達式要求無符號整數文字或參數。 所以基本上你不能做你要做的事情,除非你在一個單獨的查詢中計算(10-paths)
,然后在{resultCount}
參數中加入該查詢,然后給它預先計算的值。 這可能是很多工作,沒有多大價值。
從好的方面來說,除非你的結果非常巨大,否則最簡單的就是LIMIT 10
並在結果集中包含整數paths
,以便使用這些結果的代碼知道忽略了比這更多的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.