Я хочу проверить в БД, существует ли в документе «тест» в специальном поле c. Если он существует, я хочу увеличить его на 1, чтобы он выглядел как «test-1», а затем снова проверить в базе данных и повторять, пока он не будет найден, затем сохраните его там.
Я не У меня проблема с частью приращения, только с частью mongoose / mongodb, где мне нужно повторно запросить новое значение. Есть ли способ, которым можно выполнить один и тот же запрос несколько раз?
Отредактировано: я хочу создать новое поле на основе имени, но я хочу, чтобы это поле было уникальным, потому что я хочу использовать это как идентификатор.
Так, например, если у меня есть что-то вроде name: 'John Smith'
, я хочу создать новое поле в моем документе, например: uniqueId: john-smith
, для того же документа. Проблема в том, что если в мою коллекцию вставлен другой Джон Смит, я хочу проверить, доступен ли uniqueId john-smith
, если нет, я хочу добавить к нему -1, поэтому он будет выглядеть так john-smith-1
, и и так далее, пока john-smith-(number)
не будет найден, я буду знать, что идентификатор уникален, и сохраню его в документе.
Одна из идей - использовать Model.find () внутри рекурсивной функции с uniqueId и повторяйте, пока документ не будет найден. Но мне было интересно, может ли быть другой способ, может быть, что-то менее сложное?
mongodb v4.2.3