2015-10-18 65 views
1

我能夠使用HTTP/REST API成功查詢(選擇)並將數據插入到Cloudant數據庫中。但我無法弄清楚 - 如何刪除和修改文檔。在Cloudant DB上使用NodeJS更新和刪除文檔

對於刪除:我試圖在的NodeJS以下代碼 路徑: '/ quick_loan_nosql_db_1 951b05d1b6aa100f4b94e5185674ef40/_rev = 1-88963c755157188​​091f0d30115de18ce?' 與方法中的REST API請求的 部分:DELETE。 但是,當我執行它刪除整個數據庫,而不是指定的ID。

對於更新:有人可以提供樣品,我試圖用PUT,但在響應我有一個衝突的數據錯誤。 任何輸入將不勝感激。

+0

要刪除的文件來看看這http://stackoverflow.com/questions/32103420/deleting-a -document-from-cloudant-database-in-nodejs/37006669#37006669 –

回答

0

這是我想出的一種方法來執行更新和刪除。

我用納米API:

包括由 VAR納米=需要( '納米')(納米的 'https://'+dbCredentials.user+': '+ dbCredentials.password +' 主機名:端口/」 ); 請確保把正確的用戶名和密碼

對於更新

更新 - 你需要使用插入API只,但正確的_id和_eval和變化。例如:

nanodb.insert({ "_id": "3a1cc8c7f955f895131c3289f5144eab", "_rev": "2- 7040205a1c9270ad696724458399ac94", "name": "Tom", "employername":"Google"},  function(err, body, header) { 
if (err) { 
    console.log('[db.insert] ', err); 
    return; 
    } 
    console.log('you have inserted the rabbit.') 
    console.log(body); 
}); 

上述代碼將對給定的id和_rev執行更新。將會有一個新的修訂版本號更新,並且id將保持不變。如果您錯過了ID或版本號,它會引發衝突錯誤。

對於刪除 簡單使用nano.destroy與ID和版本號

nanodb.destroy("3a1cc8c7f955f895131c3289f5144eab","3-3e39e2298f109414cef1310449e0fd5c",function(err, body, header) { 
    if (err) { 
    console.log('[db.insert] ', err); 
    return; 
    } 
    console.log('you have inserted the rabbit.') 
    console.log(body); 

    }); 

採用納米狀框架API比通過HTTP進行REST API調用來訪問數據庫cloudant更好。

希望這有助於想連接到NodeJS的Cloudant db的人

1

不錯!要回答你原來的問題,你只需要「/」和「?」在錯誤的地方。總結一下:

/quick_loan_nosql_db_1?951b05d1b6aa100f4b94e5185674ef40/_rev=1-88963c755157188091f0d30115de18ce

應該代替是:

/quick_loan_nosql_db_1/951b05d1b6aa100f4b94e5185674ef40?_rev=1-88963c755157188091f0d30115de18ce

+0

謝謝你,我會嘗試 – vinSan

+0

酷這應該工作。考慮一下,因爲您只需在'quick_loan_nosql_db_1'數據庫中爲該JSON文檔提供正確的路徑,那麼您需要查詢該特定文檔的修訂版本號。展望未來! – brobes