[BUG] 利用Cypher查询节点,不返回节点属性,节点属性必须指定,并且返回的结果不稳定?
- Dominant language
- C++
- Stars
- 3.6k
- Forks
- 468
- Avg merge
- 29m
- Merged PRs (30d)
- 1
Description
**Describe the bug**
**运行代码**
`sess = get_default_session()
#string点
graph = sess.g(oid_type="string")
idd = np.array(['a', 'b', 'c', 'd'])
avg_score = np.array([490.33, 164.5, 190.25, 762.0])
v_data = np.transpose(np.vstack([idd, avg_score]))
df_student = pd.DataFrame(v_data, columns=["idd", "avg_score"])
src_id = np.array(['a', 'b', 'c', 'd'])
dst_id = np.array(['b', 'd', 'b', 'd'])
group_size = np.array([4, 1,2, 3])
e_data = np.transpose(np.vstack([src_id, dst_id, group_size]))
df_group = pd.DataFrame(e_data, columns=["src_id", "dst_id", "group_size"]).astype({"group_size": int})
graph = graph.add_vertices(df_student,label="student",properties=["avg_score"])
graph=graph.add_edges(df_group,label="guide",src_label="student",dst_label="student")
interactive = graphscope.interactive(graph,with_cypher=True)
e = interactive.execute("MATCH (n) RETURN n limit 3;",lang="cypher")
for record in e.records:
print(record)
e = interactive.execute("MATCH (n) RETURN n.idd limit 3;",lang="cypher")
for record in e.records:
print(record)
e = interactive.execute("MATCH (n) RETURN n.avg_score limit 3;",lang="cypher")
for record in e.records:
print(record)
e = interactive.execute("MATCH (n) RETURN n.idd,n.avg_score,n limit 3;",lang="cypher")
for record in e.records:
print(record)
e = interactive.execute("MATCH (n) RETURN n,n.idd,n.avg_score limit 3;",lang="cypher")
for record in e.records:
print(record)`
**运行结果:**

**问题**
1. 可以看出"MATCH (n) RETURN n limit 3;"只返回节点内置标签,graph中定义的id值a、b、c、d不显示,节点属性也不返回。
2. 要返回节点的属性必须要指定,但是如果第一次指定了属性,后续再换一个属性指定还是会返回第一次指定的,比如第一次指定n.avg_score,第二次如果指定n.idd,返回的会是n.avg_score的值。
3. 返回n.idd,n.avg_score,n和n,n.idd,n.avg_score,如果更改return的顺序,返回的赋值是混乱的。
4. 如果执行"MATCH (n) RETURN n.properties limit 3;",会提示_neo4j.exceptions.DatabaseError: {code: Neo.DatabaseError.General.UnknownError} {message: java.lang.IllegalArgumentException: {property=properties} not found; expected properties are: [avg_score, idd]}_,说明 [avg_score, idd]是作为属性的,但是不在n(节点)本身在properties字典中,这很奇怪。
5. 如果要返回满足条件的节点的全部属性应该怎么做?

并不能成功。
Contributor guide
Assessment
This issue has not been assessed yet.