在Cloudant DB上使用NodeJS更新和删除文档

时间:2015-10-18 15:38:54

标签: node.js cloudant

我能够使用HTTP / REST API成功查询(选择)并将数据插入Cloudant数据库。但我无法弄清楚 - 如何删除和修改文档。

对于删除:我在nodejs中尝试了以下代码 路径:'/ quick_loan_nosql_db_1?951b05d1b6aa100f4b94e5185674ef40 / _rev = 1-88963c755157188​​091f0d30115de18ce' 使用METHOD的REST API请求的一部分:DELETE。 但是当我执行它时,删除整个数据库而不是指定的ID。

更新:有人可以提供样本,我尝试使用PUT,但作为回应,我收到了冲突数据错误。 任何输入将不胜感激。

2 个答案:

答案 0 :(得分:1)

尼斯!要回答你原来的问题,你只需要“/”和“?”在错误的地方。回顾一下:

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

应该而不是

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

答案 1 :(得分:0)

以下是我计划执行更新和删除的一种方法。

我用过nano api:

包含nano by  var nano = require('nano')('https://'+ dbCredentials.user+':'+ dbCredentials.password +'hostname:port /'); 请确保输入正确的用户ID和密码

更新

更新 - 您只需要使用insert 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或修订号,则会引发冲突错误。

删除 简单地使用带有id和修订号的nano.destroy

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);

    });

使用Nano like framework API比通过http进行REST API调用以访问cloudant数据库更好。

希望这有助于想要从NodeJS连接到Cloudant数据库的人

相关问题