从php中的couchdb清除已删除的文件

时间:2018-01-23 15:44:58

标签: php couchdb

我正在尝试编写一个自动脚本来运行couchdb,找到已删除的文档(每月大约删除100,000个文档)并清除它们及其修订版。

我没有找到解释如何获取所有已删除文档及其所有修订版本的文档,并将它们构建到此处显示的POST请求中。

http://docs.couchdb.org/en/stable/api/database/misc.html

如何构建视图,获取数据并创建POST来执行此操作?

由于

1 个答案:

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