我在node-express項目中使用mongoose創建了一個企業數據庫。現在我需要在企業數據庫的enterprise_employee字段中添加員工子文檔,但會引發錯誤。 下面的代碼片段是我的架構在使用貓鼬插入子文檔時遇到困難
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
};
此代碼段是用於增加員工的子文檔
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
};
此錯誤拋出
路線throw er; // Unhandled 'error' event ^TypeError: Cannot read property 'push' of undefined
錯誤persists.Can你回顧我這是在發送信息的正確方法嗎?{「enterprise_id」:2,「僱員標識」:1,「employee_name」:「阿基拉」} – Idlliofrio
在你的情況下,employee_id和enterprise_id是數字而不是字符串,因爲它們周圍沒有引號。 你也應該嘗試chridam的建議,它可能是一個乾淨的方式做你想做的事情。 – dyouberg