我正在查询项目列表,并且仅返回 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/