Я новичок в MongoDB и мне нужна помощь с проекцией элемента массива, когда найден другой элемент массива.
Ниже приведен пример моего документа -
{
"_id": ObjectId("5bab53afcfbc7829bc6356a0"),
"category": [
{
"categoryRating": 3,
"categoryName": "Crime",
"categoryNameNew": "Crime"
},
{
"categoryRating": 4,
"categoryName": "Security Services",
"categoryNameNew": "Other"
},
{
"categoryRating": 4,
"categoryName": "Civil Unrest",
"categoryNameNew": "Societal"
},
{
"categoryRating": 4,
"categoryName": "Terrorism",
"categoryNameNew": "Terrorism"
},
{
"categoryRating": 3,
"categoryName": "Kidnapping",
"categoryNameNew": "Terrorism"
},
{
"categoryRating": 4,
"categoryName": "Geopolitical",
"categoryNameNew": "Geopolitical"
}
],
"country": "Setif",
"apiSource": "iJET",
"overallScore": 4,
"newDate": "2017-12-28T19:52:58Z"
}
Я хочу *Значение 1006 *, когда я указываю, что categoryName
это «Преступление».Итак, в этом случае мне нужно напечатать categoryrating
как 3.
До сих пор я пробовал следующий запрос -
db.RiskScore.find({"country":"Setif","category.categoryName":"Crime"},{"category.categoryRating":1})
Ниже приведен результат моего запроса-
{
"_id": ObjectId("5bab53afcfbc7829bc6356a0"),
"category": [
{ "categoryRating": 3 },
{ "categoryRating": 4 },
{ "categoryRating": 4 },
{ "categoryRating": 4 },
{ "categoryRating": 3 },
{ "categoryRating": 4 }
]
}
Возвращает все CategoryRatings вместо того, где categoryName - Crime.Пожалуйста, любая помощь в этом отношении будет принята с благодарностью.