【发布时间】:2021-10-10 16:13:57
【问题描述】:
我有以下两个收藏:
const studentSchema = new mongoose.Schema(
{
name: {
type: String,
index: true,
required: [true, "Name should be required"],
unique: [true, "Name should be unique"],
},
gender: {
type: String,
enum: ["male", "female"],
required: true,
},
}
);
const classSchema = new mongoose.Schema({
class: {
type: String,
index: true,
trim: true,
validate: /^$|\S+/,
required: [true, "Class should be required"],
unique: [true, "Class should be unique"],
},
students: {
type: [{ type: Schema.ObjectId, ref: STUDENTS_COLLECTION }],
required: true,
},
});
这个想法是每个学生应该有一个不同的名字,但每个学生可以在多个班级。
然后我创造一个学生第一
await new Student({name: "A", gender: "male"}).save(); -> objectId 1
await new Student({name: "B", gender: "male"}).save(); -> objectId 1
await new Student({name: "C", gender: "male"}).save(); -> objectId 1
我创建了第一个类:
new Class({
class: "Class A",
students: [1, 2, 3],
});
问题是当我尝试执行第二个new Class
new Class({
class: "Class B",
students: [1],
});
得到以下错误:
“E11000重复键错误集合:类索引:students.name_1 dup key:{:null}”
为什么我得到一个错误,如果只有类的名称不同?
谢谢
【问题讨论】:
标签: node.js mongodb mongoose mongoose-schema