Здравствуйте, хорошие разработчики,
Я использую пакет jenssegers / laravel-mongodb для запроса моего MongoDB из Laravel.
Вот скрипка для моего запроса: https://mongoplayground.net/p/qzbNN8Siy-3
У меня есть следующий 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': "GLOBAL_EDUCATION" },{_id:0, id:1, general_name:1, translated:{ $elemMatch: {con_lang: "US-EN"} }})
Ожидается такой результат
[
{
"general_name": "GLOBAL_EDUCATION",
"id": "GLOBAL_EDUCATION",
"translated": [
{
"con_lang": "US-EN",
"country_code": "US",
"hint": null,
"language_code": "EN",
"text": "What is the highest level of education you have completed?"
}
]
}
]
Все естьхорошо, когда запрос напрямую в MoDB, но проблема возникает, когда я пытаюсь это сделать в Laravel.Я перепробовал все возможные известные функции из пакета MongoDB.но не в состоянии это сделать.вот мой массив
$findArray = [
[
'id' => "GLOBAL_EDUCATION",
],
[
'_id' => 0,
'id' => 1,
'general_name' => 1,
'translated' => [
'$elemMatch' => ['con_lang' => "US-EN"]
],
]
];
$model = GlobalQuestions::raw()->find($findArray) //OR
$data = GlobalQuestions::raw(function($collection) use ($findArray){
return $collection->find($findArray);
});
Что я здесь не так делаю, этот тип Find () здесь невозможен, и я должен сделать это путем агрегирования?