2012-04-23 2 views

ответ

1

Есть несколько способов:

1- Предполагая, что вы пытаетесь обеспечить уникальный идентификатор для каждого блога. Почему бы не переписать поле «_id» ваших документов в коллекции блогов? Образец документа будет:

{ "_id" : 122 , "content" : { "title: ..... } 

Вы должны высматривать метод генерирования автоинкрементного идентификатор, хотя, что довольно легко. Этот тип первичных ключей, однако, не рекомендуется. http://www.mongodb.org/display/DOCS/How+to+Make+an+Auto+Incrementing+Field

2- Пусть поле _id останется, как есть, и дополнительно хранить ключ «blogid», которая является целым числом, вам придется работать ensureIndex на «blogid` поле, хотя, чтобы сделать доступ blogid быстро. Накладные расходы на хранилище будут незначительными, так как вы будете хранить ключевое имя и целое число в документе.

Образец документ будет:

{ "_id" : xxxxxxxxxx ,"blogid" : 122, "content" : { "title: ..... } 
+0

коллекции Имеет ли blogid метод юбки вокруг scalabilit или вы будете сталкиваться с теми же проблемами, что и в методе 1? – deltanovember

+0

@deltanovember blogid метод отлично работает. Единственные накладные расходы - дополнительное хранение данных, а также индекс для ключевого слова. Также предложили бы назвать это поле как можно меньше, так как для каждого документа требуется пространство, «ставка» должна преуспеть. – DhruvPathak

1

В GitHub есть несколько проектов, таких как https://github.com/dodo/node-slug и https://github.com/stipsan/String.Slugify.js, но они сосредоточены на создании допустимых URL-адресов из строк (обычно это тема темы или статьи). Я не видел никого, кто принимает случайное число, а некоторые - производят более короткий случайный (?) И уникальный номер.

Лично у меня есть только поле маркера на моем объекте post, которое содержит уникальное значение, которое меньше, чем просто используя DB id напрямую (и немного более безопасный). Если вы используете Mongoose, токен может быть сгенерирован автоматически, подключив событие pre 'Save' на вашей модели Mongoose.

2

Идентификатор в MongoDB фактически шестнадцатеричное значение для преобразования, что в числовое значение вы можете использовать следующий код для поиска числового значения в базе данных, как 1, 2 , 3 .. и этот код будет преобразовать это значение в соответствующий гекс

article_collection.db.json_serializer.ObjectID.createFromHexString(id) 

где article_collection Вашего объект

Смежные вопросы