如何在nodejs api中扩展/修改对象?

时间:2016-03-23 03:17:13

标签: javascript node.js angular-fullstack

我正在使用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);
    }
  };
}

1 个答案:

答案 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