मैंने मोंगोस में एम्बेडेड और लिंक किए गए दस्तावेज़ों के बारे में कई पोस्ट पढ़ और पढ़ ली हैं। आधार पर मैं क्या पढ़ा है, मैं यह निष्कर्ष निकाला है कि यह स्कीमा वह संरचना निम्न के समान है करने के लिए सबसे अच्छा होगा:,नेस्टेड मोंगोस एम्बेडेड दस्तावेज़ों को कैसे पॉप्युलेट करें
var CategoriesSchema = new Schema({
year : {type: Number, index: true},
make : {type: String, index: true},
model : {type: String, index: true},
body : {type: String, index: true}
});
var ColorsSchema = new Schema({
name : String,
id : String,
surcharge : Number
});
var MaterialsSchema = new Schema({
name : {type: String, index: true},
surcharge : String,
colors : [ColorsSchema]
});
var StyleSchema = new Schema({
name : {type: String, index: true},
surcharge : String,
materials : [MaterialsSchema]
});
var CatalogSchema = new Schema({
name : {type: String, index: true},
referenceId : ObjectId,
pattern : String,
categories : [CategoriesSchema],
description : String,
specifications : String,
price : String,
cost : String,
pattern : String,
thumbnailPath : String,
primaryImagePath : String,
styles : [StyleSchema]
});
mongoose.connect('mongodb://127.0.0.1:27017/sc');
exports.Catalog = mongoose.model('Catalog', CatalogSchema);
डेटा CategoriesSchema, ColorsSchema और MaterialsSchema में परिभाषित बहुत बार परिवर्तन नहीं होगा अगर कभी। मैंने फैसला किया कि कैटलॉग मॉडल में सभी डेटा होना बेहतर होगा क्योंकि कई श्रेणियां, रंग और सामग्रियां हैं, लेकिन वहां बहुत से लोग नहीं होंगे और मुझे इनमें से कोई भी कैटलॉग से स्वतंत्र नहीं ढूंढ पाएगा।
लेकिन मैं मॉडल को डेटा सहेजने के बारे में पूरी तरह उलझन में हूं। यहाँ है जहाँ मैं स्टम्प्ड हो:
var item = new Catalog;
item.name = "Seat 1003";
item.pattern = "91003";
item.categories.push({year: 1998, make: 'Toyota', model: 'Camry', body: 'sedan' });
item.styles.push({name: 'regular', surcharge: 10.00, materials(?????)});
item.save(function(err){
});
इस तरह एक नेस्टेड एम्बेडेड स्कीमा, मैं सामग्री और रंगों एम्बेडेड दस्तावेजों में डेटा प्राप्त करने के लिए कैसे के साथ?
.push() विधि नेस्टेड दस्तावेज़ों के लिए उपलब्ध प्रतीत नहीं होती है।
यदि संग्रह में बहुत सारे कैटलॉग हैं। हम विशेष आईडी को कैसे धक्का देंगे ?? –