#node.js #mongodb #mongoose
#node.js #mongodb #мангуст
Вопрос:
В данный момент я создаю уникальные идентификаторы UUID и сохраняю их в виде строки в MongoDB. Есть ли способ сохранить эти UUID в качестве объекта в MongoDB.
Проблема в том, что User.findOne на основе _id не работает, потому что UUID-это строка, а не ObjectId
Ответ №1:
вам не нужно создавать идентификаторы uuid сущностей, мангуста, сделайте это за вас, например, если вы используете метод create() без передачи _id, он сгенерирует его.
конечно, лучше сгенерировать его вручную.
и это по умолчанию.
Комментарии:
1. Да, я знаю, что мангуст автоматически генерирует _id, но я хочу иметь UUID, который выглядит так: c4ea5454-af54-4d9a-afa7-705b46dfe8ed. Функция генерирует идентификатор такого типа, но сохраняет его в виде строки. Я хочу преобразовать эту строку в идентификатор объекта
2. да, измените тип схемы на ObjectId, а при сохранении используйте Type.ObjectId(YOUR_UUID4), но я думаю, что это приведет к сбою, потому что это не формат rigth, однако вы можете попробовать сохранить его как строку и запросить не с помощью findById, а findOne
3. К сожалению, это не сработало. Я все еще получаю ошибку преобразования между строкой и объектом.