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