【问题标题】:How do I change the names of fields in an express GET response?如何更改快速 GET 响应中的字段名称?
【发布时间】:2021-07-01 04:37:01
【问题描述】:

现在,我有一个 express 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', function(req, res, next){
    Dog.find({
        'Date_Time_Competed': req.query.Competed
    }, 'breed ageInYears owner')
    .then(function(dog){
        res.send(dog);
    }).catch(next);
}); 

有什么建议吗?

【问题讨论】:

    标签: javascript api rest express get


    【解决方案1】:

    这行得通:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 2023-02-10
      • 1970-01-01
      相关资源
      最近更新 更多