我们有一个大型的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)