如果您有子文档数组,Mongoose会自动为每个数组创建ID。例:
{
_id: "mainId"
subDocArray: [
{
_id: "unwantedId",
field: "value"
},
{
_id: "unwantedId",
field: "value"
}
]
}
有没有办法告诉猫鼬不要为数组内的对象创建ID?
如果您有子文档数组,Mongoose会自动为每个数组创建ID。例:
{
_id: "mainId"
subDocArray: [
{
_id: "unwantedId",
field: "value"
},
{
_id: "unwantedId",
field: "value"
}
]
}
有没有办法告诉猫鼬不要为数组内的对象创建ID?
此外,如果使用对象文字语法指定子模式,则也可以添加限制_id: false
。
{
sub: {
property1: String,
property2: String,
_id: false
}
}
我正在使用猫鼬4.6.3,我所要做的就是在模式中添加_id:false,无需进行子模式处理。
{
_id: ObjectId
subDocArray: [
{
_id: false,
field: "String"
}
]
}
您可以创建不带模式的子文档,并避免使用_id。只需将_id:false添加到您的子文档声明中即可。
var schema = new mongoose.Schema({
field1:{type:String},
subdocArray:[{
_id:false,
field :{type:String}
}]
});
这将阻止在子文档中创建_id字段。在猫鼬3.8.1中测试
您可以使用任何一个
要么
在使用第二个选项之前,请检查您的猫鼬版本