2017-09-29 44 views
0

我正在使用node-red與cloudant進行通信,並且每當我的流程運行時,我可能會有不同數量的id:s進入msg.payload。後來我想用這些id:s來顯示所有相關的對象。是否有可能以某種方式搜索多個ID:?或者你有其他解決方案嗎?在這裏找不到任何關於atm在cloudant中搜索多個ID:s

回答

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儀表盤時執行以下操作:

設計文檔= allDocSearch

索引名= byId

索引函數=

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

要搜索多個ID的查詢會是這個樣子:

id:"1" OR id:"2" 

在節點紅色設置您Cloudant節點指向相應的數據庫,指定一個「通過搜索」的search index,並配置您的設計文檔和索引名稱(在這種情況下,它將是allDocSearch/byId)。 id:"1" OR id:"2"

+0

感謝:

您可以用類似於上面的搜索查詢的有效載荷一個簡單的注入節點測試!這是一個很好的解決方案。我還設法通過拆分對象來解決問題,以便它在當時循環並搜索一個id – danielo