使用node-redis时,能否用JSONPath的?()语法过滤Redis非数组对象?
解决方案
完全可以实现,你只需要调整JSONPath的路径,针对test2这种键为任意字符串、值为请求对象的结构,使用以下代码:
const value = await this.client.json.get('test2', { path: `$.*[?(@.timestampS < 1230011040)]` });
路径说明:
$.*:遍历根对象下的所有属性值(即123、124对应的两个请求对象)[?(@.timestampS < 1230011040)]:对每个遍历到的对象,筛选出timestampS小于指定值的项
执行后,返回的value会是一个包含符合条件的请求对象的数组(此处对应requestId为"123"的对象),和test1的返回格式一致。
内容的提问来源于stack exchange,提问作者Konrad
相关产品推荐
相关产品推荐

