大規模な mongodb コレクションがあります。その上で、定期的な行ごとの操作を実行する必要があります。ピモンゴを使用しています。フィルタ条件を 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)