Разница между полями" id "и" id " в MongoDB
есть ли разница между использованием поля ID или _ID из документа MongoDB?
Я спрашиваю это, потому что я обычно использую "_id", однако я видел этот вид ({id:-1}) в документации: http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs#OptimizingObjectIDs-Sortbyidtosortbyinsertiontime
редактировать
оказывается, документы ошибались.
4 ответов
Я думаю, что это просто опечатка в документации. The _id
поле является первичным ключом для каждого документа. Это называется _id
и через id
. Попытка использовать id
ключ может привести к illegal ObjectId format
ошибка.
этот раздел просто указывает, что автоматически сгенерированные объекты начинаются с метки времени, поэтому можно автоматически сортировать документы. Это довольно круто, так как _id
автоматически индексируется в каждой коллекции. Видеть http://www.mongodb.org/display/DOCS/Object + IDs для получения дополнительной информации. В частности, в разделе "спецификация BSON ObjectID".
A BSON ObjectID-это 12-байтовое значение, состоящее из 4-байтовой метки времени (секунды с эпохи), 3-байтового идентификатора машины, 2-байтового идентификатора процесса и 3-байтового счетчика. Обратите внимание, что поля timestamp и counter должны быть сохранены big endian в отличие от остальной части BSON.
на _id
поле является полем по умолчанию для BSON ObjectId и по умолчанию индексируется.
_id
и id не то же самое. Вы также можете добавить поле под названием id
Если вы хотите, но это не будет индекс, Если вы не добавите индекс.
Это просто опечатка в документах.
id-псевдоним для _id в mongoid.id вернет _id документа. https://github.com/mongodb/mongoid/blob/master/lib/mongoid/fields.rb#L47
Если поле _id не указано, ObjectedId генерируется автоматически.
мои две копейки:
в параметр _id поле
MongoDB
назначает _id
поле для каждого документа и присваивает ему первичный индекс. Существуют также способы применения вторичных индексов. По умолчанию MongoDB
создает ценности для