2
我有2種模式中貓鼬設置:貓鼬嵌套文檔
var Job = new mongoose.Schema({
title: String,
budget: Number
});
var JobModel = mongoose.model('Job', Job);
var Customer = new mongoose.Schema({
name: String,
jobs: [Job]
});
var CustomerModel = mongoose.model('Customer', Customer);
客戶模型具有工作模式的陣列。
我增加了新的工作如下:
app.post('/api/jobs', function(req, res){
var job = new JobModel({
title: req.body.title,
budget: req.body.budget
});
job.save(function(err){
if(!err){
CustomerModel.findById(req.body.customerId, function(err, customer){
if(!err){
customer.jobs.push(job);
customer.save(function(err){
if(!err){
return console.log('saved job to customer');
}
});
}
});
return console.log('created job');
} else {
return console.log(err);
}
});
return res.send(job);
});
當我添加一個新的工作,並得到所有我得到的,我認爲客戶是正確的:
[{
"__v": 1,
"_id": "50f85695771aeeda08000001",
"name": "Customer1",
"jobs": [
{
"_id": "50fad6985edd968840000002",
"budget": 100,
"title": "job1"
}
]
}, ...]
現在,如果我更新job1和GET所有作業,作業1已更新(預算現在爲500)
[{
"title": "job1",
"budget": 500,
"_id": "50fad6985edd968840000002",
"__v": 0
}, ...]
但是作業1在客戶作業數組中保持不變。
[{
"__v": 1,
"_id": "50f85695771aeeda08000001",
"name": "Customer1",
"jobs": [
{
"_id": "50fad6985edd968840000002",
"budget": 100,
"title": "job1"
}
]
}, ...]
不要因此我需要搜索customer1表的工作陣列,並找到JOB1工作和更新還我每次更新或刪除或時間我完全做整個築巢東西走錯了路?
我得到在客戶的作業數組是一個對象數組,但我認爲他們可能是一些如何只是一份工作的參考副本而不是重複?
好的,謝謝,這似乎是一個更明智的方式來做到這一點 –