我用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
答案 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'你可以使用上面的代码行。
由于