javascript - 忽略子文档 MongoDB 中的某些结果

标签 javascript node.js mongodb mongodb-query

我正在查询项目列表,并且仅返回 provider_cost_dict 中包含给定 ID 的项目。例如,如果我传递 providerId = 10001,则只会返回 provider_cost_dict 中具有与提供商 ID 匹配的条目的项目。

如何修改我的代码,以便忽略所有与提供商 ID 不匹配的provider_cost_dict?

这是我当前的代码:

var procedures = db.collection('procedures');

var query = {};
query['provider_cost_dict.' + req.query.providerId] = {$exists: true };

procedures.find({}).toArray(function(err, result) {
    // Send the result back via JSON.
    res.setHeader('Content-Type', 'application/json');
    res.send(JSON.stringify(result, null, 3));

});

这是我的回复:

{
          "_id": "57c62cb53673aaf5f6beacf9",
          "natl_total_cost": 1274787840,
          "natl_average": 8338.487,
          "natl_report_count": 152880,
          "name": "COPD (WITH MAJOR COMPLICATIONS)",
          "provider_cost_dict": {
             "10001": {
                "report_count": 144,
                "total_cost": 957334,
                "average_cost": 6648.153
             },
             "10005": {
                "report_count": 200,
                "total_cost": 1321644,
                "average_cost": 6608.22
             },
             "10006": {
                "report_count": 214,
                "total_cost": 1345658,
                "average_cost": 6288.1216

如果我通过了`10001,我怎样才能让我的返回看起来像:

{
          "_id": "57c62cb53673aaf5f6beacf9",
          "natl_total_cost": 1274787840,
          "natl_average": 8338.487,
          "natl_report_count": 152880,
          "name": "COPD (WITH MAJOR COMPLICATIONS)",
          "provider_cost_dict": {
             "10001": {
                "report_count": 144,
                "total_cost": 957334,
                "average_cost": 6648.153
             }
}

最佳答案

您可以指定projection到查询,以便只显示您想要的成本字典,如下所示

var query = { 'provider_cost_dict.10001': { $exists: true } };
var project = { 
    'natl_total_cost': 1,
    'natl_average': 1,
    'natl_report_count': 1,
    'name': 1,        
    'provider_cost_dict.10001': 1 
};
procedures.find(query, project).toArray( ...

关于javascript - 忽略子文档 MongoDB 中的某些结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39240710/

相关文章:

javascript - 清除输入,文本区域模糊,如果字段为空白则默认

node.js - NodeJS 的 Web Sockets 服务器端实现

当有标准时,node.js mongodb 投影会被忽略

java - spring data 和 mongodb 中级联保存

javascript - 如何使用 jest 模拟 $()

javascript - 具有相同 id 的多个复选框,需要选择一个 - jquery

Javascript:分几步显示文本

javascript - 允许用户上传内容到 s3

node.js - utf-8 中的 nodeJS : convert response. 正文(来自 windows-1251 编码)

javascript - MongoDB 引用不保存 (Mongoose)