2015-10-18 67 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