Здравствуйте, хорошие разработчики,
Я сталкиваюсь с ситуацией в MongoDB, где у меня есть такие данные JSON
[{
"id": "GLOBAL_EDUCATION",
"general_name": "GLOBAL_EDUCATION",
"display_name": "GLOBAL_EDUCATION",
"profile_section_id": 0,
"translated": [
{
"con_lang": "US-EN",
"country_code": "US",
"language_code": "EN",
"text": "What is the highest level of education you have completed?",
"hint": null
},
{
"con_lang": "US-ES",
"country_code": "US",
"language_code": "ES",
"text": "\u00bfCu\u00e1l es su nivel de educaci\u00f3n?",
"hint": null
}...
{
....
}
]
Я проецирую результат, используя следующий запрос:
db.collection.find({
},
{
_id: 0,
id: 1,
general_name: 1,
translated: {
$elemMatch: {
con_lang: "US-EN"
}
}
})
вот та же скрипка: https://mongoplayground.net/p/I99ZXBfXIut
Я хочу, чтобы те записи, которые не соответствуют $elemMatch
, вообще не возвращались.
В скрипкевы можете увидеть, что второй элемент не имеет атрибута translated
, в этом случае я вообще не хочу, чтобы второй элемент возвращался.
![Output from Fiddle](https://i.stack.imgur.com/MLb2H.png)
Я использую Laravel в качестве Backend Tech, я могу отфильтровать эти записи с помощью PHP, но возвращено много записей, и я думаю, что фильтрация с использованием PHP не лучший вариант.