填充 Mongodb
Populate in Mongodb
我对 Mongodb 的工作方式感到很困惑。
这些是我的方法的控制器。
当我在我的页面中提交表单时,"populate()" 仅在我为我的网站充值时才有效。”
但是我需要在提交时这样做。
假设我需要在我的添加案例控制器中添加 "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);
}
Populate 仅适用于 find(),但您在 'add' 函数中所做的是创建 Pandem 文档。如果您想 return Pandem 文档,在创建后填充死亡,您可以在创建文档后调用 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);
我对 Mongodb 的工作方式感到很困惑。 这些是我的方法的控制器。 当我在我的页面中提交表单时,"populate()" 仅在我为我的网站充值时才有效。” 但是我需要在提交时这样做。 假设我需要在我的添加案例控制器中添加 "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);
}
Populate 仅适用于 find(),但您在 'add' 函数中所做的是创建 Pandem 文档。如果您想 return Pandem 文档,在创建后填充死亡,您可以在创建文档后调用 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);