我有这个Mongoose模式:
const User = mongoose.model('User', new Schema({
id: String,
name: String,
extra: { bb: Number, chain: Number }
}), 'users');
当我看到一个新的User
时,它的存储方式如下:
{
_id: ...,
id: '1234',
name: 'John',
extra: {
_id: ...,
bb: 54,
chain: 7
},
__v: 1
}
如您所见,Mongoose(或我不知道的Mongo)在嵌入式对象_id
中包含了extra
。为什么会这样呢?如何防止它发生?
答案 0 :(得分:2)
您可以为子模式声明“ _id:false”,如下所示。
const User = mongoose.model('User', new Schema({
id: String,
name: String,
extra: { bb: Number, chain: Number, _id: false }
}), 'users');