我有这个查询
我想获得前10个不同的teams.id。 我怎么能这样做?
这个查询对吗?
MATCH (u:User)-[:CreatesChat]-(c:ChatItems)
with u,count(c.id) as chats
order by chats desc
with chats,u
return chats,u limit 10
EDITED
我有这个查询
MATCH (c:ChatItems)-[:PartOf]->(t:TeamChatSession)-[:OwnedBy]-()
我需要在另一个查询中使用聊天
if let value = Double(stringValue) {
print("I want two precision point for \(value) to be \(String(format: "%.2f", value))")
}
但我只需要前10个chats.id代码和user.id
如何编写此查询以保持聊天和用户的10个值?
答案 0 :(得分:0)
再次强调,为节点添加标签!在您这样做之前,您的查询将会非常缓慢!
因此,假设你要添加标签,并假设你的:团队节点已经是唯一的(你应该有一个独特的约束:Team(id)),这可能是你正在寻找的: / p>
MATCH (team:Team)
WITH team ORDER BY team.id DESC LIMIT 10
...
根据您的要求,您现在拥有团队ID顺序排名前10的团队。
但是,您的查询正在做其他事情,所以我认为您还有其他想要对这些前10名团队做的事情。你必须告诉我们你想要做些什么,你最终想要的结果是什么,如果你想要你想要的那种帮助。
以下是一些猜测。
您是否希望获得这些前10名团队中聊天记录的所有聊天ID?然后这应该工作:
MATCH (team:Team)
WITH team ORDER BY team.id DESC LIMIT 10
OPTIONAL MATCH (team)-[:PartOf]-(chat:Chat)
RETURN team.id, COLLECT(chat.id) AS chats
对于每一行,您将拥有团队ID,然后是属于该团队的聊天ID列表。
如果这不是您想要的,请说清楚。如果你只留下一个问题并详细阐述并澄清,而不是每天与同一问题直接相关的新问题,也可能会有所帮助。
我还强烈建议重读整个developer manual,并浏览浏览器应用程序中包含的所有教程。现在,您最需要的是对Cypher查询工作方式的基本理解,然后在此基础上进行构建。如果没有这些基础知识而在这里反复提问,将无法为您提供良好的服务。