4

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

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

2 回答 2

1

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

于 2013-10-14T08:24:59.370 回答
0

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

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

根据文档:

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

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

于 2013-10-17T04:34:49.100 回答