Как создать коллекцию mongodb без _id
Мой проект был построен на платформе GMONGO, и все домены были созданы с атрибутом id в виде строки. Так что работа с фреймом grail создаст коллекции mongodb с атрибутом _id, когда приложение является приложением. В пользовательском интерфейсе было ограничение на получение _id. Так что в сервисе "_id" переписывается на "id", чтобы преодолеть проблему. Можем ли мы создать коллекции с "id" по умолчанию, а не "_id"?
1 ответ
Нет, ты не можешь. Mongo автоматически создаст _id, если вы не укажете их.
https://docs.mongodb.com/v3.2/reference/glossary/
В вашем случае вы можете добавить index
в id
поле, и при запуске запросов просто добавьте проекцию, чтобы исключить _id.
Таким образом, у вас будет что-то подобное в данных
{_id: mongoDbID, id: yourId, ...}
И запустите запрос, как это
collection.find({id: yourId}).project({_id: 0}).toArray();
Вы получите это в результате
{id: yourId, ...}
Надеюсь это поможет.