Mongoose:自定义_id是否需要声明为索引并且是唯一的

ken*_*ley 5 mongoose mongodb

以下是使用 Mongoose 定义集合结构的常见方法:

var UserSchema = new Schema({
    _id: Schema.Types.ObjectId,
    username: String,
    ...
});
Run Code Online (Sandbox Code Playgroud)

现在我想将 _id 字段声明为 Number 类型:

var UserSchema = new Schema({
    _id: Number,
    username: String,
    ...
});
Run Code Online (Sandbox Code Playgroud)

问题是,我需要声明更多关于 _id 的信息吗?例如 :

var UserSchema = new Schema({
    _id: {type: Number, required: true, index: {unique: true}},
    username: String,
    ...
});
Run Code Online (Sandbox Code Playgroud)

我不确定 MongoDB 是否会自动执行此操作。

如果你知道答案,可以在下面留言吗?谢谢你!

ken*_*ley 6

嗯,经过一些实践,我意识到,MongoDB 会自动将 _id 设置为 PRIMARY KEY (NOT NULL + UNIQUE INDEX)。所以,只需输入:

_id: Number,
...
Run Code Online (Sandbox Code Playgroud)