Neo4j Rails-如何根据日期范围/数字范围进行筛选或查询



这是针对Neo4jrb的。

我想在我的列上设置筛选器。我可以搜索确切的日期/值,但我想知道如何找到一个范围内的所有日期/值。我在多个列上进行筛选,所以理想情况下我想坚持使用哈希

这适用于单值

@users = User.all
@users.where({created_at: some_date.to_i, age: some_value})

这适用于范围:

@users.as(:u).where("u.created_at >= {start_date} and u.created_at <= {end_date}")
.params(start_date: date1.to_i, end_date: date2.to_i)

我的问题是,过滤是动态的,在许多列上,有时会有一个范围,有时是现在。我只想动态设置一个散列,并将其提供给where

@users.where(filter_conditions)

我如何使用Neo4j做到这一点?

假设您指定了一个日期属性键数组及其所需范围:

[{key: "created_at", start: 123, end: 234},{key: "modified_at", start: 333, end: 333}]

在上面的例子中,created_at属性的范围为[123...234],而modified_at属性的范围是[333...333]——这只是伪装成范围测试的非范围测试。

使用以下伪代码,您应该能够应用参数指定的所有日期比较:

@users.as(:u).where("ALL(x IN {data} WHERE u[x.key] >= x.start AND u[x.key] <= x.end)")
.params(data: ... an array like the one above ...)

最新更新