重试:Neo4j查询第一个查询结果,以便深入了解返回的内容

时间:2014-04-25 15:41:00

标签: neo4j cypher

几天前我曾问过this问题,但也许我不清楚,因为我没有得到太多回应。

让我试着把我的问题改成这样的话:

I have few customers who are placing the orders with various products. and I am interested in knowing orders placed for various combinations of products and customers then bucket them into the number of orders last week, last fortnight, last month etc

我可以根据我的条件查询订单,但我无法理解如何将此结果用于我需要的数据。

假设我的数据是这样的:

(c:Customer)<-[:PLACED_BY]-(o:Order)-[:HAS_PRODUCT]->(p:Product), (o)-[:PLACED_ON]->(d:Date)

并假设我已经成功找到了我正在寻找的Order,那么我如何有效地从这些选定的订单中获得我想要的数量。

{... some queries that returns (o:Order) of interest ...}
With o
RETURN ??? as CountLastWeek, ??? as LastFortnight,  ??? as LastMonth  

BTW我在OrderedDate上也有Order属性,如果这有助于简化查询。

甚至可以在Cypher中实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

您要做的是日期时间索引。这一点当然可以通过Cypher实现。

您需要通过关系为您的节点编制索引。每个日期都是一天,您需要将这些日期分组。每天都有一个星期,它所在的一个月。您只需要将这些组添加到您的日期,然后汇总属于一周,一个堡垒之夜或一个月的日期集合。

Multilevel DateTime Index