问题:Redis JSON CLI SET 命令更新对象中的变量

问题描述 投票:0回答:1

   [ { "senderID": "64d9c926c17fd183a93d5e35", "receiverID": "64d9c92dc17fd183a93d5e39", "timestamp": "2023-08-14T07:39:45.946Z", "content": "bru", "status": "delivered", "type": "chat", "messageID": "8188946b-67e4-4d86-a927-32842361825c" }, ... ]

JSON.SET rooms:64d9c926c17fd183a93d5e35-64d9c92dc17fd183a93d5e39 $[?(@.status=='sent')].status "'delivered'"

Redis JSON Query Image on redis cli

我确实遇到了这个错误 - 无效参数:结束引号后必须跟一个空格或什么都不跟

我已经尝试了查询中提到的已交付和已发送的变体 带双引号、单引号,两者都是为了它

查询错误?我不知道

redis node-redis redisjson redis-stack-server
1个回答
0
投票

我认为问题是你的 JSONPath 中有单引号。尝试用双引号括起来。像这样:

JSON.SET rooms:64d9c926c17fd183a93d5e35-64d9c92dc17fd183a93d5e39 "$[?(@.status=='sent')].status" '"delivered"'

此外,我将字符串更改为在外部使用单引号。由于 JSON 中到处都是双引号,因此我总是将 JSON 用单引号括起来。只是一个好习惯。

© www.soinside.com 2019 - 2024. All rights reserved.