我能够使用HTTP / REST API成功查询(选择)并将数据插入Cloudant数据库。但我无法弄清楚 - 如何删除和修改文档。
对于删除:我在nodejs中尝试了以下代码 路径:'/ quick_loan_nosql_db_1?951b05d1b6aa100f4b94e5185674ef40 / _rev = 1-88963c755157188091f0d30115de18ce' 使用METHOD的REST API请求的一部分:DELETE。 但是当我执行它时,删除整个数据库而不是指定的ID。
更新:有人可以提供样本,我尝试使用PUT,但作为回应,我收到了冲突数据错误。 任何输入将不胜感激。
答案 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数据库的人