Как создать коллекцию 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, ...}

Надеюсь это поможет.

Другие вопросы по тегам