我正在尝试编写一个自动脚本来运行couchdb,找到已删除的文档(每月大约删除100,000个文档)并清除它们及其修订版。
我没有找到解释如何获取所有已删除文档及其所有修订版本的文档,并将它们构建到此处显示的POST请求中。
http://docs.couchdb.org/en/stable/api/database/misc.html
如何构建视图,获取数据并创建POST来执行此操作?
由于
答案 0 :(得分:0)
所以我最终为它定期运行一个nodejs脚本。 有些东西是硬编码的,因为这是用于测试,而不是生产(尚未)。任何引用它的人都应该注意硬编码的引用。 我使用pouchdb来处理复制,因为它能够在几分钟内运行所有400,000个墓碑,而我从来没有真正得到couchdb来完成一整天的运行后复制。 这是我的第一个节点脚本,所以如果它很糟糕我会道歉。
<?php
include 'connection.php';
$username = $_POST['username'];
$sql = "UPDATE employee SET ";
//where username = '$username'";
$countColumns = 0; // track how many columns we are going to update
$columns = ['firstname', 'lastname']; // add more columns to this list if needed.
foreach($columns as $key ) {
if ( ! empty($_POST[$key] ) {
$value = $_POST[$key];
if ( $countColumns > 0 ) $sql .= ',';
$sql .= " `{$key}` = '{$value}'";
$countColumns++;
}
}
if ( $countColumns > 0 ) {
$sql .= " WHERE username = '{$username}'";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
}
else {
echo "error: $sql. " . mysqli_error($conn);
}
}
else {
// Nothing to update
}
mysqli_close($conn);