如何从mongodb中的表单存储数组

时间:2014-07-16 06:32:45

标签: javascript node.js mongodb pug

我的表格有点像

<form>
              <label class="label">Class Name</label>
              <label class="input">
                <input type="text" name="class_name[]">
              </label>
            </section>
            <div class="row">
              <section class="col col-5">
                <label class="label">Grade</label>
                <label class="input">
                  <input type="text" name="grade[]">
                </label>
</form>

我想将它存储在我的mongodb数据库中。 我正在使用像

这样的架构
var SchoolSchema = new mongoose.Schema({
 classroom: [{
        Name: {
            type: String,
            required: true
        },
        grade: {
            type: Number,
            default: 1
        }

    }]
});

请建议我如何在此数据库中保存表单中的数据。

1 个答案:

答案 0 :(得分:1)

您需要首先注册您的学校架构

mongoose.Schema.model('School', SchoolSchema);

然后,在你的控制器上:

var School = new mongoose.Schema.model('School');

exports.submit = function(req, res) {
  var classRooms = [];
  for (var i = 0; i < req.body.class_name.length; i++) {
    classRooms.push({Name: req.body.class_name[i], grade: req.body.grade[i]});
  }
  School.create({classroom: classRooms}, function(err, school) {
    ...
  });
};

注意:请遵循NodeJS / Javascript约定