我正在使用angular-fullstack自耕农发电机。为Product创建了一个模式,并创建了一组api crud操作。一切顺利。现在在获取列表操作中,我不希望接收所有字段,只接收一个子集。就像在sql中选择一样。我也想改变一个价值。而不是价格,我需要价格* 1.1。 怎么做? 这是索引方法的代码(返回产品列表):
// Gets a list of Products
export function index(req, res) {
Product.findAsync()
.then(respondWithResult(res))
.catch(handleError(res));
}
function respondWithResult(res, statusCode) {
statusCode = statusCode || 200;
return function(entity) {
if (entity) {
res.status(statusCode).json(entity);
}
};
}
答案 0 :(得分:0)
正如documentation中所述,.find()
需要两个参数,查询和投影。
// params
Product.findAsync(query, projection)
您可以使用投影“选择”字段的子集;
// example
Product.findAsync({}, { _id: 1, name: 1, description: 1 })
// result, only the three specified field will be returned
[
{ _id: 'abc123', name: 'Some name', description: 'Some description'},
{...}
]
如果您想操纵数据,我认为您必须使用aggregation pipeline