简体   繁体   English

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

[英]How to store an array from a form in mongodb

I have a form some thing like 我有一个类似的形式

<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>

I want to store this in my mongodb database. 我想将其存储在我的mongodb数据库中。 I am using a schema like 我正在使用类似的架构

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

    }]
});

Please suggest me how I can save the data from form in this database . 请建议我如何将表单中的数据保存到此数据库中。

You need to register you SchoolSchema to mongoose first 您需要先注册SchoolSchema才能猫鼬

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

Then, at your controller: 然后,在您的控制器上:

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) {
    ...
  });
};

Note: Please follow NodeJS / Javascript conventions 注意:请遵循NodeJS / Javascript约定

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM