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

4
我正在使用具有upsert的更新操作。我想检索所有在更新后被修改的文档。
for key in categories_links:
    collection.update({"name" : key}, {"name": key ,"url" : categories_links[key]}, True)

不理解你的问题。你可以以某种方式标记更新的对象。 - alexvassel
2个回答

1
如果您需要查找哪些文档何时更新,您应该在文档中使用时间戳字段。有一个BSON类型可以实现这一功能。

0
据我所知,pymongo不会返回所有已被更新的记录列表。
但是,如果您正在使用复制集,则可以通过查看 oplog来实现此目的。
根据文档:

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

如果您想跟踪每个要更新的元素,可以执行find(),然后循环遍历这些元素,在每个元素上进行单独的update()操作。显然,这可能会慢得多,但对于您的特定用例可能是一种权衡。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接