提问人:user2182284 提问时间:10/16/2023 更新时间:10/17/2023 访问量:64
neovis.js 版本 2.1.0 与 neo4j 版本 5.12.0 不兼容吗?
Is neovis.js version 2.1.0 incompatible with neo4j version 5.12.0?
问:
我正在使用 neovis.js 版本 2.1.0 和 neo4j 版本 5.12.0。当我尝试根据示例进行访问时,neo4j 服务器返回以下错误:
Neo4jError: The property existence syntax `... exists(variable.property)` is no longer supported. Please use `variable.property IS NOT NULL` instead. (line 1, column 17 (offset: 16))
"MATCH (n) WHERE exists(n.pagerank)"
这些版本之间是否存在已知的不兼容问题?
我的vue3.js代码如下:
<template>
<h3>graph demo</h3>
<div id="graph"></div>
</template>
<script setup>
import NeoVis from "neovis.js";
import { onMounted } from "vue";
const config = ref({
containerId: "graph",
neo4j: {
serverUrl: "bolt://localhost:7687",
serverUser: "neo4j",
serverPassword: "neo4j_password",
},
labels: {},
relationships: {},
initialCypher: "MATCH (n) return n",
});
nMounted(() => {
const vis = new NeoVis(config);
vis.render();
});
</script>
<style scoped></style>
答:
0赞
fbiville
10/16/2023
#1
自 Neo4j 5.0 以来,exists
已更改为仅检查图形模式是否存在,而不检查属性。
neovis.js 必须改用以下变体:
MATCH (n) WHERE n.pagerank IS NOT NULL
注意:您可以阅读 Neo4j 4.4 的 exists
文档,它确实也适用于属性。
0赞
cybersam
10/17/2023
#2
Neovis.js 源代码包含以下代码片段:defaults.ts
neo4j: {
initialQuery: `MATCH (n) WHERE exists(n.pagerank)
WITH (n), RAND() AS random
ORDER BY random LIMIT 3000
OPTIONAL MATCH (n)-[r]-(m)
//WITH n,r,m WHERE exists(n.pagerank) AND exists(m.pagerank) AND exists(m.community)
RETURN n, r, m;`,
...
这似乎是您错误的原因。您可能应该为此创建一个问题。
0赞
user2182284
10/17/2023
#3
感谢您的帮助。
Neovis.js 与 Neo4j 5.12.0 兼容,除了一些不推荐使用的语法,如上所述。exists
我的错误源于不正确的代码。它应该是.我正在使用 Vue3.js。如果没有 ,Neovis.js 无法初始化配置,默认为包含 .当我添加时,该错误已解决,并且将执行我的初始Cypher子句。const vis = new NeoVis(config)
const vis = new NeoVis(config.value)
.value
exists
.value
exists
上一个:仅更改 H2 兼容模式属性
下一个:如何在 R 中创建兼容的目录路径
评论