Redis 从 Value 中获取 Key

bir*_*j01 5 key-value nosql redis

ID是唯一的,我使用它作为键,其余的作为Redis数据库中的哈希值。我正在寻找一个查询,如果我给出特定的城市名称,该查询会返回 ID 列表。例如,如果我询问,给我名为 SPRINGFIELD 的城市的所有 ID,它应该返回 01103 和 01104。


{
  "_id": "01103",
  "city": "SPRINGFIELD",
  "loc": [
    -72.588735,
    42.1029
  ],
  "pop": 2323,
  "state": "MA"
}
Run Code Online (Sandbox Code Playgroud)
{
  "_id": "01104",
  "city": "SPRINGFIELD",
  "loc": [
    -72.577769,
    42.128848
  ],
  "pop": 22115,
  "state": "MA"
}
Run Code Online (Sandbox Code Playgroud)
{
  "_id": "01106",
  "city": "LONGMEADOW",
  "loc": [
    -72.5676,
    42.050658
  ],
  "pop": 15688,
  "state": "MA"
}
Run Code Online (Sandbox Code Playgroud)

Tag*_*ith 3

您没有指定在 Redis 中使用哪个键来映射到城市的哈希结构,因此我假设您使用 ID,因为您已经说过它是唯一的。

要查询与特定名称匹配的城市,您需要构建和维护支持查询的二级索引结构。实现此目的的一种方法是使用SET数据结构并使用城市名称作为键,该键指向共享该城市名称的 ID 集。