Как расширить/изменить объект в API nodejs?

Я использую генератор Yeoman с угловым полным стеком. создал схему для Продукта и набор операций API crud. все работает хорошо. теперь в операциях получения списка я не хочу получать все поля, а только подмножество. как выбор в sql. я также хотел бы изменить одно значение. вместо цены мне нужна цена * 1.1. как это сделать? вот код метода index (возвращает список продуктов):

// 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);
    }
  };
}

person Amir Gilboa    schedule 23.03.2016    source источник


Ответы (1)


Как указано в документации, .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'},
    {...}
]

Если вы хотите манипулировать данными, я думаю, вы должны использовать конвейер агрегации

person organismen    schedule 19.04.2016