【问题标题】:How can i send only particular field in json response using node and express.js?如何使用 node 和 express.js 仅发送 json 响应中的特定字段?
【发布时间】:2017-03-27 17:55:30
【问题描述】:
[ 
{ 
   id: 6dcba0f57c9b73cc1,
   USER_ID: '945',
   ORDER_ID: '35220',
   PRODUCT_ID: '9982',
   CODE: '418567066',
   POINTS: '2000'

},
 {
   id: 4dcba0f57c9b73cc7,
   USER_ID: '945',
   ORDER_ID: '43521',
   PRODUCT_ID: '1071',
   CODE: '4004091261',
   POINTS: '1000',
 },
 { id: dcba0f57c9b73cce,
   USER_ID: '945',
   ORDER_ID: '13594',
   PRODUCT_ID: '2482',
   CODE: '7592231244',
   POINTS: '2000',
 },
 {
   id: 0f57c9b73cc74dcba,
   USER_ID: '345',
   ORDER_ID: '43528',
   PRODUCT_ID: '1071',
   CODE: '4004091267',
   POINTS: '1000',
 }
]

上面存储在我的积分汇总中的文档。

   id
   USER_ID
   ORDER_ID
   PRODUCT_ID
   CODE
   POINTS

而不是在每个文档中发送所有上述字段。我只需要发送

USER_ID
 ORDER_ID 
 CODE

以下是我的控制器代码,它将仅显示/发送USER_ID: '945' 点详细信息。

exports.userpos = function(req, res) {
    console.log(req.params.id)
    PointSummary.find({'USER_ID':'945'}).exec(function (err, PointSummarys) {
    if(err) { return handleError(res, err); }
     //return res.status(200).json(PointSummarys);
     return res.status(200).json({});
  });
};

我该如何解决这个问题?

【问题讨论】:

标签: json node.js mongodb express


【解决方案1】:

您可以在 db 查询中传递您希望返回的所有字段。

exports.userpos = function(req, res) {
    console.log(req.params.id)
    PointSummary.find({'USER_ID':'945'}, {
        'USER_ID': 1,
        'ORDER_ID': 1,
        'CODE': 1
    }).exec(function (err, PointSummarys) {
    if(err) { return handleError(res, err); }
     //return res.status(200).json(PointSummarys);
     return res.status(200).json({});
  });
};

旁注:理想情况下,您希望将密钥名称保持为小写。 user_id 而不是 USER_ID

【讨论】:

  • 没有我要求的响应现在我正在发送所有字段。但我应该只发送 USER_ID ,ORDER_ID ,CODE
  • 以上代码只会返回_id, USER_ID ,ORDER_ID ,CODE。这不是你想要的吗?
猜你喜欢
  • 2014-02-20
  • 2012-02-24
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 2021-03-02
  • 1970-01-01
相关资源
最近更新 更多