将对象插入集合时缺少 _id
Missing _id when inserting Object into Collection
我的数据库有用户、教育和课程的集合。
当服务器启动时,它应该用必要的数据填充教育,包括一个名为 mandatoryCourses 的数组,其中包含选定的课程。代码如下:
educationData.forEach((education) => {
Educations.insert({
name: education.name,
nickname: education.nickname,
mandatoryCourses: []
});
education.courses.forEach((code) => {
let course = Courses.findOne({code: code});
Educations.update({name: education.name}, {
$addToSet: {
mandatoryCourses: course
}
});
});
});
这个工作正常,除了一个细节:
课程具有的_id字段不在mandatoryCourses的课程条目中,但所有其他属性都在那里。检查 console.log(course) 表明该课程确实拥有一个 _id,但它不会显示在数组条目中。
addCourse 是一个类似的操作,用户可以在其中获取附加到自身的课程。此操作完美无缺,包括 _id,代码如下:
let course = Courses.findOne({code: courseId});
Meteor.users.update(userId, {
$addToSet: {
courses: course
}
});
courseId/code的用法是正确的。我怀疑问题出在 mandatoryCourses 使用的模式中。作为参考,user.courses 字段被初始化为空数组,而 mandatoryCourses 被定义为课程数组,[Course].
课程架构依次如下所示:
Courses.schema = new SimpleSchema({
name: {
type: String,
label: "Course name"
},
code: {
type: String,
label: "Course code"
},
points: {
type: Number,
label: "Points"
},
finished: {
type: Boolean,
defaultValue: false
}
});
这些也是进入 mandatoryCourses 数组的确切属性。
我是否应该以某种方式在课程架构中明确声明 _id?当课程被添加到 Courses 集合时,它似乎工作得很好,只是在与数组 mandatoryCourses 交互时没有。
提前致谢。
将 _id 字段添加到课程架构中就可以了。
我仍然不确定这种交互,希望有人能澄清为什么有必要将它包含在强制性课程的情况下,而它对于模式的其他用途来说效果很好。
我的数据库有用户、教育和课程的集合。
当服务器启动时,它应该用必要的数据填充教育,包括一个名为 mandatoryCourses 的数组,其中包含选定的课程。代码如下:
educationData.forEach((education) => {
Educations.insert({
name: education.name,
nickname: education.nickname,
mandatoryCourses: []
});
education.courses.forEach((code) => {
let course = Courses.findOne({code: code});
Educations.update({name: education.name}, {
$addToSet: {
mandatoryCourses: course
}
});
});
});
这个工作正常,除了一个细节:
课程具有的_id字段不在mandatoryCourses的课程条目中,但所有其他属性都在那里。检查 console.log(course) 表明该课程确实拥有一个 _id,但它不会显示在数组条目中。
addCourse 是一个类似的操作,用户可以在其中获取附加到自身的课程。此操作完美无缺,包括 _id,代码如下:
let course = Courses.findOne({code: courseId});
Meteor.users.update(userId, {
$addToSet: {
courses: course
}
});
courseId/code的用法是正确的。我怀疑问题出在 mandatoryCourses 使用的模式中。作为参考,user.courses 字段被初始化为空数组,而 mandatoryCourses 被定义为课程数组,[Course].
课程架构依次如下所示:
Courses.schema = new SimpleSchema({
name: {
type: String,
label: "Course name"
},
code: {
type: String,
label: "Course code"
},
points: {
type: Number,
label: "Points"
},
finished: {
type: Boolean,
defaultValue: false
}
});
这些也是进入 mandatoryCourses 数组的确切属性。
我是否应该以某种方式在课程架构中明确声明 _id?当课程被添加到 Courses 集合时,它似乎工作得很好,只是在与数组 mandatoryCourses 交互时没有。
提前致谢。
将 _id 字段添加到课程架构中就可以了。
我仍然不确定这种交互,希望有人能澄清为什么有必要将它包含在强制性课程的情况下,而它对于模式的其他用途来说效果很好。