@Urukhayy

Можно ли использовать текстовые предложения как идентификатор в базе?

Есть приложение, работающее на MEAN-stack. Предположим, что в базе (Mongo) этого приложения есть коллекция "люди", имеющая несколько полей: возраст, пол, даты. А ещё в этой коллекции есть поле ФИО, которое является уникальным. В это поле в полной форме вписывается имя, фамилия и отчество через пробелы. Можно ли использовать это поле как идентификатор, к примеру, при удалении документа из коллекции?

db.collection.remove({FIO: "Иванов Иван Иванович"});


Но есть проблема, если человек опечатается в строке, может не сработать удаление.

В Mongo есть длинные _id из случайных символов с автоматической генерацией, но JSON-query на удаление может формироваться человеком, и не совсем удобно использовать длинные id из случайных символов.
Или всё-таки правильным решением будем отправлять на front-end эти _id, и потом обратно принимать с запросом на удаление?
  • Вопрос задан
  • 246 просмотров
Решения вопроса 1
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Можно ли использовать текстовые предложения как идентификатор в базе?
Удалять запись/строку/документ не по ID, а по значению одного из полей (Вы же это спрашиваете?) - вполне себе можно и иногда даже нужно. Другой вопрос, что ID - это уникальная запись, однозначно идентифицирующая некоторую строку/запись/документ, как в MongoDB, так и в SQL-базах. Иначе говоря, при удалении по ID Вы однозначно удаляете конкретную запись, в случае же удаления по какому-то иному параметру, данный параметр может совпадать с другой записью/документом, и далеко не факт, что Вы удалите то, что хотели.

В Mongo есть длинные _id из случайных символов с автоматической генерацией, но я не хочу их использовать для этих целей
Вы главное саму логику генерации и положения ID не трогайте, она ещё не однократно может пригодится в будущем, а удалять записи/документы, при желании, можете по любому из удобных для Вас полей. Можете например, добавлять к документу собственное поле с именем "id", вписывать туда что Вам угодно/удобно, и идентифицировать и удалять документы по этому полю.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы