我们有一个很大的 mongodb 集合。为此,我们需要执行周期性的逐行操作。我们使用 pymongo。我们有以 mongodb 格式动态生成过滤条件的代码,这部分代码不能更改。
当前代码看起来像这样
for row in cursor:
do_row_by_row_op_if_filter_is_invalid(row)
cursor.rewind()
for row in cursor.find(filter_in_mongo_db_format):
do_row_by_row_op_if_filter_is_valid(row)
这根本不是最优的。我们怎么能做类似的事情
for row in cursor:
if not filter_is_valid(row, filter_in_mongo_db_format):
do_row_by_row_op_if_filter_is_invalid(row)
else:
do_row_by_row_op_if_filter_is_valid(row)