因此,创建索引函数并对其进行测试后,应将其集成到数据库初始化步骤中。 我目前有以下内容:
indexRequest.json
{
"indexes": {
"mySearch": {
"index": "function (doc) {
index('default', doc.name);
if (doc.description) {
index('default', doc.description);
}
}"
}
}
}
现在我尝试通过以下方式将此文件发送到cloudant:
curl -X PUT https://$username:$password@$myurl.cloudant.com/myDatabase/_design/myTest -H 'Content-Type: application/json' -d @indexRequest.json
哪个失败
{"error":"conflict","reason":"Document update conflict."}
myTest
已包含索引函数,名称不同。
我在这做错了什么?
答案 0 :(得分:1)
在Cloudant中更新或删除文档时,必须为新文档正文提供以前版本的_rev令牌。程序是
1)阅读现有文件
curl -X PUT https://$username:$password@$myurl.cloudant.com/myDatabase/_design/myTest
这将为您提供现有的身体。根据您的规格修改主体。然后
2)写回文件
curl -X PUT https://$username:$password@$myurl.cloudant.com/myDatabase/_design/myTest -H 'Content-Type: application/json' -d @indexRequest.json
原始的_id和_rev在json文件中。
然后你应该回来确认:
{
"ok":true,
"id":"_design/myTest",
"rev":"2-9176459034"
}
这里是Cloudant Docs on updating documents以及Design Document management上更详细的说明