所以在couchdb中使用nano如果你不知道文件的_rev,更新它的唯一方法是使用db.atomic,它需要将一些设计文档上传到couchdb。我对吗?我想知道是否有更好的方法来完成原子更新操作,只需在代码库中执行所有操作,而不是单独在couchDB中上传这些设计文档?
答案 0 :(得分:0)
获取文档的_rev非常简单,您需要做的就是发送HEAD请求,然后您就可以立即获得版本。 以下是我在nano中进行更新时发现的一些代码:
int coin[] = {3, 5}; //initialize array
int make;
int dp[2][100];
int call(int i, int amount)
{
if(i >= 2) { // All coins have been taken
if(amount == make) return 1;
return 0;
}
if(dp[i][amount] != -1) return dp[i][amount];
int ret1 = 0, ret2 = 0;
// try to take coin i
if(amount + coin[i] <= make) ret1 = call(i, amount + coin[i]);
ret2 = call(i+1, amount); // don't take coin i
return dp[i][amount] = ret1 | ret2; // is possible or not?
}
int main()
{
make = 7;
memset(dp, -1, sizeof(dp));
if(call(0, 0) == 0) cout << "not possible" << endl;
else cout << "possible" << endl;
return 0;
}
得到了这个