Tôi đã đọc và đọc lại một số bài đăng về tài liệu được nhúng và liên kết trong Mongoose. Dựa trên những gì tôi đã đọc, tôi đã kết luận rằng nó sẽ là tốt nhất để có cấu trúc sơ đồ tương tự như sau:Cách điền các tài liệu được nhúng lồng vào Mongoose
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);
Các dữ liệu quy định tại CategoriesSchema, ColorsSchema và MaterialsSchema sẽ không thay đổi rất thường xuyên, nếu bao giờ hết. Tôi quyết định sẽ tốt hơn nếu có tất cả dữ liệu trong mô hình Catalog bởi vì trong khi có nhiều loại, màu sắc và vật liệu, sẽ không có nhiều và tôi không cần phải tìm bất kỳ dữ liệu nào trong số đó độc lập với Catalog.
Nhưng tôi hoàn toàn bối rối về việc lưu dữ liệu vào mô hình. Đây là nơi tôi bị bối rối:
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){
});
Với lược đồ nhúng lồng nhau như thế này, làm cách nào để lấy dữ liệu vào tài liệu và tài liệu nhúng màu?
phương thức .push() dường như không có sẵn cho các tài liệu lồng nhau.
Nếu có nhiều danh mục trong bộ sưu tập. làm thế nào chúng ta sẽ đẩy đến id cụ thể ?? –