在cloudant中搜索多个id:s

时间:2017-09-29 16:54:49

标签: database nosql cloudant node-red

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

1 个答案:

答案 0 :(得分:0)

看起来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仪表板时,这与以下内容相对应:

设计doc = allDocSearch

索引名称= byId

index function =

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

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

id:"1" OR id:"2"

在Node-Red中,将Cloudant节点设置为指向相应的数据库,指定search index的“搜索依据”,并配置您的设计文档和索引名称(在这种情况下,它将是{{1 }})。

您可以使用简单的注入节点进行测试,其有效负载类似于上面的搜索查询:allDocSearch/byId