【问题标题】:How to save an empty array as property of a nested object in mongoose?如何将空数组保存为猫鼬中嵌套对象的属性?
【发布时间】:2018-02-28 02:37:42
【问题描述】:

我有以下代码:

var lesson = new Lesson({
                classroomId: req.params.classroomId,
                name: req.body.name,
                startDate: startDate1,
                endDate: endDate1,
                teacher: {
                    _id: classroom.teacher._id,
                    attendance: [],
                },
                students: [],
            });

lesson.save();

当我签入后端时,教师键只有_id属性,而出勤属性没有保存。我怀疑这是因为它是一个空数组。如何保存这样的空数组?

【问题讨论】:

  • 尝试分配 var att = [] 并在出勤属性中使用此变量,例如出勤:att;
  • 我怀疑这实际上是因为定义的架构与您提交的内容不匹配。如果您仍然不确定,请在问题中显示您的架构。默认情况下,Mongoose 会在文档中创建空数组,即使您根本不提供任何数据。通常的要求是“压制”它。如果你没有得到数组,那么你的架构实际上并不是你想象的那样。
  • 这是架构的相关部分。老师:{ _id:mongoose.Schema.Types.ObjectId,出勤:[{ connectTime:Date,disconnectTime:Date,_id:false,}],},

标签: arrays node.js mongoose


【解决方案1】:

这可能是因为课程模式定义不正确。你有没有尝试设置...

mongoose.Schema({
    .....
    teacher: {
        ...
        attendance: { type: Array, default: [] }
    }
    ...
});

【讨论】:

  • 当然。这只是架构中相关的部分。
猜你喜欢
  • 2019-07-14
  • 2014-07-26
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-09
相关资源
最近更新 更多