U moet een nieuw object bouwen bij het declareren van uw ingesloten CollectPoint
artikelen :
var data = new CollectPoint({
name: "Level 1",
collectPoints: [
new CollectPoint({
name: "Level 1.1",
collectPoints: []
})
]
});
Op deze manier de _id
en collectPoints
wordt aangemaakt door de instantie van CollectPoint
anders maak je gewoon een gewoon JSONObject.
Om dit soort problemen te voorkomen, bouwt u een validator voor uw array die een fout zal veroorzaken als de items een verkeerd type hebben:
var CollectPointSchema = new mongoose.Schema({
name: { type: String },
collectPoints: {
type: [this],
validate: {
validator: function(v) {
if (!Array.isArray(v)) return false
for (var i = 0; i < v.length; i++) {
if (!(v[i] instanceof CollectPoint)) {
return false;
}
}
return true;
},
message: 'bad collect point format'
}
}
});
Op deze manier zal het volgende een fout veroorzaken:
var data = new CollectPoint({
name: "Level 1",
collectPoints: [{
name: "Level 1.1",
collectPoints: []
}]
});