在 cloudant 中搜索多个 id:s

Search for multiple id:s in cloudant

我正在使用 node-red 与 cloudant 通信,每次我的流程运行时,我可能会有不同数量的 id:s 进入 msg.payload。后来我想用这些 id:s 来显示所有相关的对象。是否可以通过某种方式搜索多个 id:s?或者您有其他解决方案吗?找不到关于此在线 atm 的任何信息

看起来 Node-RED 支持通过 _id、搜索索引或所有文档进行查询。当您使用 _id 时,似乎没有办法指定多个 ID。但是,您可以使用搜索索引来查询多个 ID。

在 Cloudant 中创建类似于以下内容的搜索索引:

{
  "_id": "_design/allDocSearch",
  "views": {},
  "language": "javascript",
  "indexes": {
    "byId": {
      "analyzer": "standard",
      "index": "function (doc) {\n  index(\"id\", doc._id);\n}"
    }
  }
}

这对应于使用 Cloudant 仪表板时的以下内容:

设计文档 = allDocSearch

索引名称=byId

索引函数=

function (doc) {
  index("name", doc.name);
}

要搜索多个 ID,您的查询应如下所示:

id:"1" OR id:"2"

在 Node-Red 中设置您的 Cloudant 节点以指向适当的数据库,指定 "Search by" of search index,并配置您的设计文档和索引名称(在本例中为allDocSearch/byId).

您可以使用一个简单的注入节点进行测试,其负载类似于上面的搜索查询:id:"1" OR id:"2"