node expressjs, база используется mongodb.
Алгоритм такой: когда приходят пост данные, производится поиск записи по полям name, server, fraction. Если такая запись есть то обновить, если нет то создать.
Проблема в том, что при большом количестве запросов, если не находит запись, то создает не одну запись, а несколько. Я предполагаю что пока mongodb создает запись, следующий поиск не дает результата, ведь запись еще не создана и поиск не дает результата, и mongodb создает еще одну идентичную запись, хотя должна обновить.
Как решить эту проблему?
Обновляй всегда без поиска с upsert: true
updateOne
https://docs.mongodb.com/manual/reference/method/db.collection.update/#upsert-behavior
Обсуждают сегодня