Python-Cloudant获取更改

Python-Cloudant获取更改,python,cloudant,Python,Cloudant,我使用库Cloudant从Cloudant数据库收集文档。每次运行python脚本时,我都会获取所有文档,但我只想检索上次执行脚本时添加的文档,换句话说,就是get_changes函数 我一直在寻找答案,但似乎不容易找到 塔克斯需要任何帮助 菲利波。使用变更方法。跟踪最后一个序列id,然后从那里重新启动以仅检索未看到的更改 # Iterate over a "normal" _changes feed changes = db.changes() for change in changes:

我使用库Cloudant从Cloudant数据库收集文档。每次运行python脚本时,我都会获取所有文档,但我只想检索上次执行脚本时添加的文档,换句话说,就是get_changes函数

我一直在寻找答案,但似乎不容易找到

塔克斯需要任何帮助

菲利波。

使用变更方法。跟踪最后一个序列id,然后从那里重新启动以仅检索未看到的更改

# Iterate over a "normal" _changes feed
changes = db.changes()
for change in changes:
    print(change)

# ...time passes
new_changes = db.changes(since=changes.last_seq)
for new_change in new_changes:
    print(new_change)
如果还需要单据体,可以传递include_docs=True

如果只想捕获新添加的内容而不是所有更改,可以在db设计文档中创建一个过滤器函数,如下所示:

function(doc, req) {
    // Skip deleted docs
    if (doc._deleted) {
        return false;
    }
    // Skip design docs
    if (doc._id.startsWith('_design')) {
        return false;
    }

    // Skip updates
    if (!doc._rev.startsWith('1-')) {
        return false;
    }

    return true;
}
并将其应用于更改提要:

new_changes = db.changes(since=changes.last_seq, filter='myddoc/myfilter'):
    # do stuff here
但是,简单地获取Python代码中的所有更改和过滤器可能同样容易


过滤功能:

是的,在发布后我尝试了tha方法,效果很好。我必须编辑这个问题,因为我想做的是只检索在最后一个序列id之后上传的附加文档。您发布的脚本还返回设计文档和文档修改,但我对这些结果不感兴趣。顺便说一句,谢谢你的回答谢谢你这么多xpqz,你的评论帮助很大