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