1 mongoose自建_id
如果想要自己定义_id,直接在Schema中定义类型进行覆盖,默认是自动生成_id(且类型为ObjectId)
const schema = mongoose.Schema({
_id: Number
})
且在定义schema的options中有一个_id参数可以用于控制是否生成_id,但是由于mongoDB中的文档都需要一个_id,所以取消_id生成的情况一般为子文档,例如:
const childSchema = new Schema({ name: String }, { _id: false });
const parentSchema = new Schema({ children: [childSchema] });
如果在schema中定义_id类型为mongoose.Schema.ObjectId,则创建文档时就需要传入ObjectId类型的_id
{
_id: mongoose.Types.ObjectId(id)
}
2 mongoose中如何去掉__id
在定义Schema的时候加上一项_id:false
const Schema = new Schema(
{
_id: false,
current: Number,
},
{
collection: 'test',
},
);
3 mongoose中如何去掉__V
__v字段已经开始出现在我的MongoDB文档中
不需要版本号这个字段我们设置一下就好,在Scheam中加入{versionKey:false}成功解决问题
var mySchema = new mongoose.Schema({
username: 'string'
}, {versionKey: false}
);