I’m working on a project where I have three Mongoose schemas: Article, Module, and Course. The Module schema has an array of articles, and the Course schema has an array of modules, each with a sequence field to determine the order. I want to ensure that the sequence field is unique within its respective array. However, I’m having trouble enforcing uniqueness for the sequence field. This given code doesn’t work for this use case.
const articleSchema = new Schema({
// ... (article schema fields)
});
const moduleSchema = new Schema({
// ... (module schema fields)
articles: [{
article: {
type: Schema.Types.ObjectId,
ref: 'Article',
},
sequence: {
type: Number,
required: true,
unique: true, // This doesn't seem to be working
}
}],
});
const courseSchema = new Schema({
// ... (course schema fields)
modules: [{
module: {
type: Schema.Types.ObjectId,
ref: 'Module',
},
sequence: {
type: Number,
required: true,
unique: true, // This also doesn't seem to be working
},
}],
// ... (more course schema fields)
});
const Article = mongoose.model('Article', articleSchema);
const Module = model('Module', moduleSchema);
const Course = model('Course', courseSchema);