我正在使用 node-redis 库。我有 Redis 键:
test1
值:
{
"requests": [
{
"requestId": "123",
"requestType": "TYPE_1",
"foo": "bar",
"timestampS": 1230011000
},
{
"requestId": "124",
"requestType": "TYPE_1",
"foo": "bar2",
"timestampS": 1230011050
}
]
}
通过
timestampS
< 1230011040, I need to run: 获取所有请求
const value = await this.client.json.get('test1', { path: `$.*[?(@.timestampS<1230011040)]` });
它有效。
value
是一个只有一个元素的数组(“requestId”为“123”的请求对象)。
但是,我不知道如何获取包含所有请求对象的数组
timestampS
< 1230011040 from redis key test2
其值:
{
"123": {
"requestId": "123",
"requestType": "TYPE_1",
"foo": "bar",
"timestampS": 1230011000
},
"124": {
"requestId": "124",
"requestType": "TYPE_1",
"foo": "bar2",
"timestampS": 1230011050
}
}
可以吗?
就 JSON 路径而言,是的,过滤器选择器同时作用于停留和对象。 对于对象,它忽略键并迭代值。
我不知道redis是否支持,但这是一个非常基本的功能,所以应该是。
另外,如有疑问,请尝试一下。