_id或JSON响应节点js中的其他字段不排除

时间:2019-04-22 07:15:27

标签: node.js express mongoose

我想在我的node-express应用中从JSON API提取数据结果时排除默认的_id或两个字段(时间和计数)中的任何一个。我尝试了几种方法来执行此操作,但是数据仍然显示我在GET响应中标记为排除的字段。在下面的代码中,我使用_Id作为示例,但是对于数据库的每个字段仍然存在类似的问题。这是我发现不起作用的一些方法:

exports.get_all_clothing = (req, res, next) => {
    Clothing.find({}, {projection:{_id: 0}})
    .exec()
    .then(docs => {
        console.log(docs);
        res.status(200).json(docs);
    })       

      .catch(err => {
        console.log(err);
        res.status(500).json({
          error: err
        });
      });
}
                             AND

exports.get_all_clothing = (req, res, next) => {
    Clothing
    .find({}).project({ _id: 0 })
    .exec()
    .then(docs => {
        console.log(docs);
        res.status(200).json(docs);
    })       

      .catch(err => {
        console.log(err);
        res.status(500).json({
          error: err
        });
      });
}
                           AND

exports.get_all_clothing = (req, res, next) => {
    Clothing.find('-_id')
    .exec()
    .then(docs => {
        console.log(docs);
        res.status(200).json(docs);
    })       

      .catch(err => {
        console.log(err);
        res.status(500).json({
          error: err
        });
      });
}

每次我得到的结果都是

[ { _id: 5cb73
    time: '656
    count: 43,
    __v: 0 }, 
  { _id: 5cb73
    time: '155
    count: 60,
    __v: 0 }, 
  { _id: 5cb73
    time: '155
    count: 56,
    __v: 0 }, ....]

请帮忙。

2 个答案:

答案 0 :(得分:0)

尝试一下:

exports.get_all_tweets = (req, res, next) => {
    Clothing.find({}, {_id: 0})
    .exec()
    .then(docs => {
        console.log(docs);
        res.status(200).json(docs);
    })       

      .catch(err => {
        console.log(err);
        res.status(500).json({
          error: err
        });
      });
}

答案 1 :(得分:0)

您可以使用query.select获得所需的结果。

exports.get_all_tweets = (req, res, next) => {
    Clothing.find()
    .select('-_id')
    .then(docs => {
        console.log(docs);
        res.status(200).json(docs);
    })       

      .catch(err => {
        console.log(err);
        res.status(500).json({
          error: err
        });
      });
}