Почему метод модели Sequelize `findOrCreate()` создаёт только 1 запись?

Метод findOrCreate() в Sequelize предназначен для поиска записи в базе данных и ее создания, если такая запись не найдена. Он имеет следующий синтаксис:

Model.findOrCreate({ where: { <условие> }, defaults: { <поля и значения для создания записи> } })

Метод findOrCreate() возвращает массив, где первый элемент это найденная или созданная запись, а второй элемент это флаг, указывающий, была ли создана запись (true) или найдена (false).

Однако, если метод findOrCreate() нашел несколько записей, которые соответствуют условию поиска, то он вернет только первую запись из найденных и флаг false, указывающий, что запись уже существовала и была найдена. Таким образом, метод findOrCreate() всегда возвращает только одну запись, даже если найдено несколько совпадающих.

Это сделано для обеспечения предсказуемости и согласованности работы метода. Если бы метод findOrCreate() возвращал все найденные записи, это могло бы привести к неоднозначности и неожиданным результатам, например, если при попытке создания записи с указанными значениями произошла ошибка уникальности, то метод мог бы вернуть несколько записей, что было бы неправильным.

Если вам нужно создать несколько записей сразу, вы можете использовать методы bulkCreate() или цикл и множество вызовов create(), в зависимости от ваших потребностей.