如何在mongodb中使用pymongo进行更新操作后检索已修改的文档?

时间:2013-10-14 07:42:12

标签: mongodb pymongo

我正在使用upsert进行更新操作。我想检索更新后修改过的所有文档。

for key in categories_links:
    collection.update({"name" : key}, {"name": key ,"url" : categories_links[key]}, True)

2 个答案:

答案 0 :(得分:1)

如果您需要查找更新时间和时间,请在文档中使用时间戳字段。有BSON type for that

答案 1 :(得分:0)

据我所知,pymongo不会返回所有已被更新修改的记录列表。

但是,如果您使用的是复制集,则可以通过查看oplog来完成此操作。

根据文件:

  

oplog必须将多个更新转换为单个操作   为了保持幂等性。这可以使用大量的oplog   没有相应增加数据大小或磁盘使用的空间。

如果要跟踪要更新的每个元素,可以改为执行find(),然后遍历这些元素以对每个元素执行单独的update()。显然这会慢得多,但也许是对你的特定用例的权衡。