2015-03-17 4 views
0

Я создаю новый объект с мангуста. Как автоматически назначить идентификатор этому объекту?mongodb: как автоматически генерировать идентификатор для вновь созданного объекта?

Это то, что я до сих пор (берегитесь: CoffeeScript):

ObjectSchema = new Schema({ 
    #some other properties 
    id: { type: Schema.ObjectId, required: true} 
}) 

Это, как я его создать:

obj = new Object() 
#assign a couple of properties 
obj.save((err) -> 
    if err? 
    console.log(err) 
    else 
    console.log("successfully saved") 
) 

, который дает мне эту ошибку:

ValidationError: Path `id` is required 

ответ

3

Не объявляйте любое ID поля в схеме, и после сохранения, ваш объект будет иметь _id автоматически сформированное поле.

+0

так просто ... спасибо – faboolous

1

Он автоматически создается, когда его не указано на вставке

указать только другие свойства документа

1

Вы также можете управлять ObjectId в вашем собственном поле документа, я приложил некоторые код сниппета, в котором «идентификатор» настроенное поле фиктивной doucment

var ObjectID = require('mongodb').ObjectID 

var dummy_record = {id: new mongo.ObjectID(), created: new Date()}; 

db.collection('dummy').insert(dummy_record, {w: 1}, function(err, records) { 
if (err) { 
    // handle error here 
} else { 
    // do whatever you want, after insertion of record 
} 
}); 

Примечание: - Как и предыдущие ответы этого вопроса , '_id' - это предопределенное поле документа, которое по умолчанию заполняется автоматически, дополнительная работа не требуется для одного и того же, но если вы хотите изменить имя поля или хотите, чтобы какая-либо другая форма, подобная «id», вы можете использовать вышеуказанные строки кода для одна и та же.

Thanks

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