ノードエクスプレスプロジェクトでmongooseを使用してエンタープライズデータベースを作成しました。エンタープライズデータベースのenterprise_employeeフィールドにemployeeサブ文書を追加する必要がありますが、エラーが発生します。 次のコードスニペットは、このコードスニペットは、このエラーはmongooseを使用してサブ文書を挿入する際の問題
を投げvar mongoose = require('mongoose');
var Enterprise = mongoose.model('Enterprise_gpy');
var addEmployee = function(req, res){
\t Enterprise.findOne({"enterprise_id":req.body.enterprise_id},function(err, res){
\t \t if(err){
\t \t \t console.log('NO SUCH ORGANISATION');
\t \t \t res.json(err);
\t \t } else {
\t \t \t Enterprise.enterprise_employee.push({
\t \t \t \t "employee_id": req.body.employee_id,
\t \t \t \t "employee_name":req.body.employee_name
\t \t \t });
\t \t }
\t });
}
module.exports={
\t addEmployee:addEmployee
};
従業員のサブ文書を追加するためのルートである私のスキーマ
var mongoose= require('mongoose');
var Enterprise= new mongoose.Schema({
enterprise_id:{
\t \t type:String
\t },
\t enterprise_name:{
\t \t type:String
\t },
\t enterprise_email:{
\t \t type:String
\t },
\t enterprise_employee: [{employee_id:Number, employee_name:String}]
});
module.exports={
\t Enterprise:Enterprise
};
です
throw er; // Unhandled 'error' event ^TypeError: Cannot read property 'push' of undefined
エラーが、これは詳細を送信する正しい方法です:次の例では、この実証{ "enterprise_id":2、 "EMPLOYEE_ID":1、 "EMPLOYEE_NAME": "akila"} – Idlliofrio
あなたのケースでは、employee_idとenterprise_idは、文字列ではなく数字です。その周りに引用符がないためです。 また、あなたは何をしようとしているのよりクリーンな方法かもしれないchridamの提案を試してください。 – dyouberg