【发布时间】:2017-01-16 15:13:11
【问题描述】:
我有一个包含嵌套数组和子文档的 Mongoose 模型。
发布到对象数组/子文档时我似乎没问题,但我在使用 .put 时遇到了问题
我硬编码了用于测试的参数,以防万一它们由于某种原因没有从 PostMan 进来。
我从上面的代码得到的结果是一个空数组!
所以我得到了正确的记录,它创建了“电话”数组,但没有填充。
.put(function(req, res){
Member.find({'_id':req.params.id}, function(err, member){
if(err)
res.send(err);
member.phone.push({
number: "78787878787",
phoneType: 2
})
member.save(function(err){
if(err)
res.send(err);
res.json(member);
});
});
});
我想要一个简单地添加另一个“电话”记录的端点。
这是我的模型:
//DEPENDENCIES
var mongoose = require('mongoose');
var contactSchema = new mongoose.Schema({
name:{type:String},
age:{type:Number}
});
var phoneSchema = new mongoose.Schema({
number:{ type: String },
phoneType:{ type: Number }
})
var memberSchema = new mongoose.Schema({
firstname: {
type: String
},
lastname: {
type: String
},
phone:[phoneSchema],
contacts:[contactSchema]
});
//RETURN MODEL
module.exports = mongoose.model('member', memberSchema);
现在,当我运行我的代码时,我得到以下未定义的“成员”:
{ id: '587bcbffe64e9f28a6894dd7' }
[ { _id: 587bcbffe64e9f28a6894dd7,
lastname: 'Stanley',
firstname: 'Dave',
__v: 0,
contacts: [ [Object] ],
phone: [] } ]
events.js:154
throw er; // Unhandled 'error' event
^
TypeError: Cannot read property 'push' of undefined
【问题讨论】:
-
你想要 2 个对象在电话阵列中吗?一个有号码,另一个有phoneType?
-
嗨,拉维,实际上没有。只是一个具有两个值的对象。我会解决的。
-
对为什么不将值保存到手机有什么想法吗?
-
你可以
console.log(req.params)告诉我结果如何? -
嗨 Ravi,看看我的更改。我确实发现我的路线有问题,我现在已经改变了。至于更新,由于某种原因,当我尝试使用“member.phone”推送新的电话联系人时,我收到一条消息,指出我的“会员”对象未定义。