Python-Cloudant获取更改
我使用库Cloudant从Cloudant数据库收集文档。每次运行python脚本时,我都会获取所有文档,但我只想检索上次执行脚本时添加的文档,换句话说,就是get_changes函数 我一直在寻找答案,但似乎不容易找到 塔克斯需要任何帮助 菲利波。使用变更方法。跟踪最后一个序列id,然后从那里重新启动以仅检索未看到的更改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:
# 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,你的评论帮助很大