如何更改快速 GET 响应中的字段名称?

问题描述

现在,我有如下用于快速 API 的工作代码

router.get('/Find',function(req,res,next){
    Dog.findOne({
        'Date_Time_Competed': req.query.Competed
    }).then(function(dog){
        res.send({
            'Breed': dog.breed,'Age': dog.ageInYears,'Owner': dog.owner
        })
    }).catch(next);
});

代码调用 MongoDB 数据库并查找品种、ageInYears 和所有者类别,并以与品种、年龄和所有者类别关联的 JSON 格式返回它们。

我现在想做一个 .find() 调用获取多个条目,但我似乎无法弄清楚当我有多个条目时如何更改字段的名称

现在,这就是我正在尝试的。它有效,但我不知道如何更改字段的名称。 (注意:对于我不想使用的每个条目,数据库中有更多字段,这就是我没有指定某些字段的原因)。

router.get('/Find',next){
    Dog.find({
        'Date_Time_Competed': req.query.Competed
    },'breed ageInYears owner')
    .then(function(dog){
        res.send(dog);
    }).catch(next);
}); 

有什么建议吗?

解决方法

这有效:

router.get('/Find',function(req,res,next){
    Dog.aggregate([
        {$match: {Date_Time_Competed: req.query.Competed}},{$project: {
            _id: 0,"Breed": "$breed","Age": "$ageInYears","Owner": "$owner",}}
    ]).then(function(dog){
        res.send(dog);
    }).catch(next);
});