Reputation: 3
I just started using mongoose, and I declared a schema for my data. I'm wondering how I can declare more subdocuments as the same type. Say I wanted to add a second or third location subdocument, how would I do that?
var nest_schema = mongoose.Schema({
company_name: String,
website: String,
chain: Boolean,
date: {
date_added: Date,
date_lastupdated: { type: Date, default: Date.now},
},
rating: {
yelp_rating: Number,
yelp_reviews: Number,
user_rating: Number,
},
locations: {
location_number: Number,
location_name: String,
address: String,
phone: String,
hours: {
Monday: String,
Tuesday: String,
Wednesday: String,
Thursday: String,
Friday: String,
Saturday: String,
Sunday: String,
},
drinks: {
drink: String,
sizes: {
small: Number,
medium: Number,
large: Number,
}
}
}
});
Upvotes: 0
Views: 990
Reputation: 10481
Define another schema and embed it in your primary schema:
var nest_schema = mongoose.Schema({
company_name: String,
website: String,
chain: Boolean,
date: {
date_added: Date,
date_lastupdated: { type: Date, default: Date.now},
},
rating: {
yelp_rating: Number,
yelp_reviews: Number,
user_rating: Number,
},
locations: [locationSchema],
drinks: [drinkSchema]
});
var locationSchema = mongoose.Schema({
number: Number,
name: String,
address: String,
phone: String,
hours: {
Monday: String,
Tuesday: String,
Wednesday: String,
Thursday: String,
Friday: String,
Saturday: String,
Sunday: String,
}
});
You'll probably also want to make the drinks its own schema as well:
var drinksSchema = mongoose.Schema({
drinks: {
drink: String,
sizes: {
small: Number,
medium: Number,
large: Number,
}
}
});
Upvotes: 1