如题,我现在实现的方法是用语句来查询:
result = db.collection.find_one(xxxx) if result: 更新数据 else: 插入数据
但是,这种方法效率太低了,不知道有没有更好的方法?
欢迎选择我的课程,让我们一起见证您的进步~~
MongoDB では、upsert と呼ばれる特別な更新が導入されています。更新条件を満たすドキュメントがない場合は、この条件に基づいて新しいドキュメントが作成され、一致するドキュメントが見つかった場合は、通常どおり更新されます。
upsert
詳細については、MongoDB のドキュメントを参照してください。
アップサート: db.collection.update(xx, xx,true) 3 番目のパラメータを true に設定するだけです
mongodb の find_one をテストした人がいるかどうかはわかりませんが、数十億のデータをクエリする場合は問題ありません (テスト済み)。
MongoDB では、
upsert
と呼ばれる特別な更新が導入されています。更新条件を満たすドキュメントがない場合は、この条件に基づいて新しいドキュメントが作成され、一致するドキュメントが見つかった場合は、通常どおり更新されます。詳細については、MongoDB のドキュメントを参照してください。
アップサート:
db.collection.update(xx, xx,true)
3 番目のパラメータを true に設定するだけです
mongodb の find_one をテストした人がいるかどうかはわかりませんが、数十億のデータをクエリする場合は問題ありません (テスト済み)。