我正在使用带有 upsert 的更新操作。我想检索更新后已修改的所有文档。
for key in categories_links:
collection.update({"name" : key}, {"name": key ,"url" : categories_links[key]}, True)
如果您需要查找哪些更新以及何时更新,您应该在文档中使用时间戳字段。有一个BSON 类型。
据我所知,pymongo 不会返回所有已被更新修改的记录的列表。
但是,如果您使用的是副本集,则可以通过查看oplog来完成此操作。
根据文档:
oplog 必须将多次更新转换为单独的操作,以保持幂等性。这可以使用大量的 oplog 空间,而不会相应增加数据大小或磁盘使用量。
如果您想跟踪每个正在更新的元素,您可以改为执行 find(),然后循环遍历这些元素以对每个元素执行单独的 update()。显然这会慢得多,但可能是您特定用例的权衡。