mongodb:如何自动为新创建的对象生成id?

时间:2015-03-17 19:56:04

标签: mongoose

我用mongoose创建一个新对象。 如何自动为该对象分配ID?

这是我到目前为止(注意: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 个答案:

答案 0 :(得分:3)

不要在架构中声明任何 id 字段,保存后,您的对象将有一个 _id 自动生成的字段。

答案 1 :(得分:1)

当在插入

上未指定时,它会自动创建

仅指定文档的其他属性

答案 2 :(得分:1)

您还可以在自己的文档字段中管理ObjectId,我附上了一些代码段代码,其中包含' id'是虚拟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'你可以使用上面的代码行。

由于