【发布时间】:2015-11-01 06:20:09
【问题描述】:
这是用 Mongoose 定义集合结构的常用方法:
var UserSchema = new Schema({
_id: Schema.Types.ObjectId,
username: String,
...
});
现在我想将 _id 字段声明为数字类型:
var UserSchema = new Schema({
_id: Number,
username: String,
...
});
问题是,我需要声明更多关于 _id 的信息吗?如:
var UserSchema = new Schema({
_id: {type: Number, required: true, index: {unique: true}},
username: String,
...
});
我不确定 MongoDB 是否会自动完成。
如果你知道答案,你能在下面发表评论吗?谢谢!【问题讨论】:
-
当你创建一个新模型时,mongoose 将 '_id' 声明为 ObjectId,但是还有另一个字段叫做 'id'(没有下划线),所以这个变量/字段转换为字符串。是的,这不是一个数字,但您可以更轻松地使用 ObjectId。至于'_id',你完全正确,你可以像
'_id: Number'一样手动设置它。 Mongoose 3.6+ 允许此选项。