2014-07-16 55 views
0

有一個表單像我如何從形式存儲陣列在MongoDB中

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

    }] 
}); 

請建議我我如何從形式保存在這個數據庫中的數據。

回答

0

您需要註冊您SchoolSchema到貓鼬第一

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的約定

+0

嗨,有一點錯誤我正在使用上述方法存儲這些值。數據庫中只有一個條目是「a,b,c」的形式,而應該有三個條目由數據a b和c構成 –

+0

你可以編輯你的問題來比較db的預期和實際輸出嗎? –

+0

當我使用你提供的解決方案時,我在db => [{Name:a,b,Grade:1,2}]中得到了這個結果,而它應該是=> [{Name:a,Grade:1 },{名稱:b,等級:2}]。 –