将自定义对象的猫鼬 PUT 实现到复杂架构中时出现问题
Issue implementing a Mongoose PUT for a custom object into a complex schema
我会分解问题以确保我已经很好地解释了它。
我的 Web 应用程序正在使用 MEAN.js,在这种情况下,我在猫鼬服务器端控制器中实现了更新功能。使用此架构:
客户端角度控制器代码工作正常,它向我发送了正确的对象以将其插入MongoDB
我有一个自定义对象的数组,该数组由数据库中的其他相关架构对象组成,它表示引用任务对象的更新列表、Taskstate 对象的更改以及更新发生的时间。
tupdates:[{
task:{
type: Schema.ObjectId,
ref: 'Task'
},
tstate:{
type: Schema.ObjectId,
ref: 'Tstate'
},
startedat: Date,
stoppedat: Date,
updatedby:{
type: Schema.ObjectId,
ref: 'User'
},
}]
我实现了一个函数,该函数将循环访问 req 对象中的数组,并为数组中的每个更新创建自定义对象,最后将其插入到数据库中。服务器端猫鼬控制器
var mongoose = require('mongoose'),
Job = mongoose.model('Job');
exports.update = function(req, res){
var job = req.job;
//check for updates
if(req.body.tupdates.length>0){
for (var j=0; j<req.body.tupdates.length; j++){
var theobj = req.body.tupdates[j];
var tupdate = ({
task : theobj.task._id,
tstate: theobj.tstate._id
});
job.tupdates.push(tupdate);
}
}
job.save(function(err){
if(err){
return res.status(400).send({
message: getErrorMessage(err)
});
}else{
res.json(job);
}
});
};enter code here
数据持久保存在数据库中,问题是在 req 数组中的每个更新中插入了一个带有我没有引用的 ObjectID 的附加_id值,如下所示:
db.jobs.find()
{ "_id" : ObjectId("56eff14d4b343c7f0a71f33c"), "creator" : ObjectId("55ddd115a2904424680263a0"), "title" : "Job1", "tupdates" : [ { "task" : ObjectId("567a9c4b90f3ccd10b0e7099"), "tstate" : ObjectId("5693bb0f804936f167fe9ec2"), *"_id" : ObjectId("56eff38e095a2fa41312d876")*} ]}
我添加了这些星号以指示带有 ObjectId 引用的 _id 值,该值被添加到我在服务器端控制器中创建的对象中,每次对同一对象进行更新时,问题仍然存在。它稍后创建了 500 个错误,必须省略才能使该功能在生产中正常运行,我很感激您的帮助,认为这是我需要进行的 java 脚本调整。
默认情况下,猫鼬_id
字段添加到数组元素中,如果它们是对象。只需将_id: false
添加到您的架构中:
tupdates:[{
_id: false,
task:{
type: Schema.ObjectId,
ref: 'Task'
},
tstate:{
type: Schema.ObjectId,
ref: 'Tstate'
},
startedat: Date,
stoppedat: Date,
updatedby:{
type: Schema.ObjectId,
ref: 'User'
},
}]
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- 关于复杂JSON解析(angularjs和javascript)的问题
- 将自定义对象的猫鼬 PUT 实现到复杂架构中时出现问题
- 复杂数据和自动完成的绑定问题
- 复杂的嵌套数组问题
- I'我在尝试将一个变量传递到一个已经工作的复杂正则表达式时遇到了问题
- setTimeout、clearTimeout和javascript的复杂问题