Я создал 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."
}
Ожидание, что оно должно вернуть мне все подходящие планы, но это не работает для меня.