Подтвердить что ты не робот

Сохранить _Id как объект или строку в MongoDB?

Я разрабатываю API с помощью Codeigniter и MongoDB. В этой системе я сохраняю полное имя и _ID пользователей, что выбранный пользователь следует.

Что лучше делать с _Id? Хранить его как объект или строку? Если я сохраню его как объект, мне нужно преобразовать его в строку, если повторять повторителей в противном случае выход выглядит странно.

Мой вопрос действительно. Можно ли хранить _Id как строку, а не объект? Что является недостатком хранения в виде строки?

Спасибо за вход!

4b9b3361

Ответ 1

Производительность для запросов (и обновлений) действительно лучше с objectid. Более того, объектив довольно мал в пространстве.

Из официального документа:

BSON включает в себя двоичный тип данных данных для хранения байтовых массивов. С помощью это сделает значения id и их соответствующие ключи в _id индекс, в два раза меньше.

вот 2 ссылки, которые могут вам помочь: - http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs - http://www.mongodb.org/display/DOCS/Object+IDs

Ответ 2

Когда вы используете ObjectId, он генерирует _id как уникальное значение на всех ваших компьютерах. Поэтому, если вы используете Sharding, вы не будете беспокоиться о конфликтах _id. Посмотрите, как ObjectId генерируется в specification
Но если вы используете строку, вы должны ее сгенерировать.