我已经创建了api,它将除三个参数外,将其发送给mongo db以获取查询数据,该数据将根据查询参数返回所有记录。
http://localhost:2300/plans?state=MI&county=Macomb&version=2019.version
这会将三个参数传递给服务-
State = OH , County = Clark , Version = 2019.version
为此运行的查询是-
db.collection.aggregate([{
$unwind: "$PLAN"
},
{
$match: {
"STATE_COUNTIES.COUNTY_NAME": "Clark",
"STATE": "OH",
"VERSION": "2019.version"
}
},
{
$group: {
_id: "$PLAN",
}
},
{
$addFields: {
key: 1
}
},
{
$group: {
_id: "$key",
plans: {
$push: "$_id"
}
}
},
{
$project: {
_id: 0,
plans: 1
}
}
])
JSON对于此查询,数据库结构如下-
{
"_id" : ObjectId("5cf88fd8ea0798090c1abdf9"),
"YEAR" : "2020",
"VERSION" : "2019.version",
"UNIQUE_ID" : "H1234",
"STATE" : "OH",
"STATE_COUNTIES" : [
{
"STATE_NAME" : "OH",
"COUNTY_NAME" : "Clark"
},
{
"STATE_NAME" : "OH",
"COUNTY_NAME" : "Ottawa"
},
{
"STATE_NAME" : "OH",
"COUNTY_NAME" : "Wood"
}
],
"PLAN" : "All health cover plan",
"ORG_NAME" : "ING Health, INC."
}
{
"_id" : ObjectId("5cf89018ea0798090c1abdf8"),
"YEAR" : "2020",
"VERSION" : "2019.version",
"UNIQUE_ID" : "H4567",
"STATE" : "TX",
"STATE_COUNTIES" : [
{
"STATE_NAME" : "TX",
"COUNTY_NAME" : "Aransas"
},
{
"STATE_NAME" : "TX",
"COUNTY_NAME" : "Bexar"
}
],
"PLAN" : "All health cover plan",
"ORG_NAME" : "India health , INC."
}
期望会返回所有匹配的计划,但这对我不起作用。