我想将_id
保存为Number
,如本文档中所示:
_id:数字,
从这里采取:http://mongoosejs.com/docs/populate.html
但是,在使用此代码时,我将数据保存到Model
时没有收到任何错误。如果我删除此行,则会ObjectID
我的代码:
var UserSchema = new Schema({
_id: Number
});
mongoose.model('User', UserSchema)
答案 0 :(得分:0)
Mongoose会自动为您创建的每个文档分配_id
,与默认情况下ObjectId
的一般MongoDB文档保持一致。要更改此行为,请将其关闭:
var UserSchema = new Schema({
_id: Number
},{ "_id": false });
mongoose.model('User', UserSchema)
因此,此选项会禁用_id
代,这可能会导致"顶级"架构,除非你自己定义字段。当你这样做时,尊重并使用给定的类型。
如果没有该选项,则使用默认值并覆盖您在架构中使用的任何声明。所以这段代码现在按预期工作:
user = new User({ "_id": 1 });
user.save(function(err,doc) {
if (err) throw err; // but wont fail to cast type now
console.log( doc );
});