我对Mongodb的工作方式感到困惑。 这些是我的方法的控制者。 当我在页面中提交表单时,“populate()”仅在我为我的网站充值时才有效。“ 但是当我提交时,我需要这样做。 假设我需要在Add Cases控制器中添加“populate()”选项。
不知道如何让它发挥作用
/**
* Get Cases
*
* @method get
* @param req {Object} Request from http
* @param res {Object} response to http
*/
function get(req,res){
var response = {
code:400,
result:{}
};
var skip = (req.body.skip)?req.body.skip:0;
var limit = (req.body.limit)?req.body.limit:20;
var query = {};
var caseCb = function(err,caseDoc){
if(err){
res.json(response);
return;
}
response.code = 200;
response.result = caseDoc;
res.json(response);
};
params.Pandem.case_model.find(query).populate('disease').exec(caseCb)
}
/**
* Add Case
*
* @method add
* @param req {Object} Request from http
* @param res {Object} response to http
*/
function add(req,res){
var response = {
code:400,
result:{}
};
var caseObj = {
name: req.body.name,
location: [req.body.location.longitude,req.body.location.latitude],
disease:req.body.disease._id
};
var caseCb = function(err,caseDoc){
if(err){
response.result = err;
res.json(response);
return;
}
response.code = 200;
response.result = caseDoc;
res.json(response);
};
params.Pandem.case_model.create(caseObj,caseCb);
}
答案 0 :(得分:1)
填充仅适用于find(),但您在添加'中所做的事情。函数正在创建一个Pandem文档。如果要返回Pandem文档,并在创建后填充decease,则可以在创建文档后调用populate。
var caseCb = function(err,caseDoc){
if(err){
response.result = err;
res.json(response);
return;
}
caseDoc.populate('disease', function (err, caseDocPopulated){
response.code = 200;
response.result = caseDocPopulated;
res.json(response);
})
};
params.Pandem.case_model.create(caseObj,caseCb);