अपने एम्बेडेड CollectPoint
. की घोषणा करते समय आपको एक नई वस्तु का निर्माण करना चाहिए आइटम :
var data = new CollectPoint({
name: "Level 1",
collectPoints: [
new CollectPoint({
name: "Level 1.1",
collectPoints: []
})
]
});
इस तरह _id
और collectPoints
CollectPoint
. के उदाहरण द्वारा बनाया जाएगा अन्यथा, आप केवल एक सादा JSONObject बना रहे हैं।
इस तरह की समस्याओं से बचने के लिए, एक सत्यापनकर्ता बनाएं। आपके एरे के लिए जो एक त्रुटि को ट्रिगर करेगा यदि उसके आइटम में गलत प्रकार है:
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'
}
}
});
इस तरह निम्नलिखित एक त्रुटि को ट्रिगर करेगा:
var data = new CollectPoint({
name: "Level 1",
collectPoints: [{
name: "Level 1.1",
collectPoints: []
}]
});