Можно ли настроить имя поля по умолчанию ObjectId в MongoDB? - PullRequest
5 голосов
/ 10 февраля 2012

Можно ли изменить имя поля ObjectId с «_id» на «id» или что-то еще?

Я просматривал документы и до сих пор ничего не нашел по этому поводу.Я использую MongoDB с pymongo (драйвер python) на сервере, где я буду предоставлять объекты JSON, а библиотека js, которую я использую на клиенте, ожидает объекты с полем 'id'.

Ответы [ 2 ]

3 голосов
/ 10 февраля 2012

База данных всегда ожидает или добавляет поле "_id", но в некоторых случаях вы можете маскировать это от клиента.

Ознакомьтесь с ссылками на SON манипуляторами . Вы можете преобразовывать документы по мере их вставки и извлечения, чтобы динамически изменять поле «_id», чтобы оно выглядело так, как будто это поле «id». Имейте в виду, однако, что это только преобразует документ - НЕ запросы: findOne ({"id": "1234567890"}) ничего не найдет, потому что поле "id" в действительности не существует в базе данных.

Вы должны решить для себя, является ли это хорошей идеей для вашего варианта использования.

3 голосов
/ 10 февраля 2012

Я так не думаю. Поле _id создается автоматически для каждого созданного документа. Вы можете создать другое поле id, если хотите использовать что-то еще, например, целочисленное значение.

...