Как получить данные вложенного списка в mongoDb?

218
06 апреля 2017, 21:18

У меня есть вот такая структура:

{
        "_id" : ObjectId("18b97aa654bce61356002559"),
        "name" : "Photo",
        "childs" : [ 
            {
                "_id" : ObjectId("18b97aa654bce41356002559"),
                "name" : "Photo childs",
                "childs" : [ 
                    {
                        "_id" : ObjectId("88b55aa654bce61356000000"),
                        "name" : "Photo childs childs",
                        "childs" :  [ 
                           {
                             "_id" : ObjectId("33b55aa654bce61356000000"),//нужно получить данные этого вложенного документа
                             "name" : "Photo childs childs childs",
                             "childs" : ""
                           }
                        ]
                    }
                ]
            }
        ]
    }

Глубина вложенности может быть любая то есть

  • childs
  • -childs
  • --childs
  • ---childs
  • ----childs
  • ...... бесконечно

Как можно найти любого вложенного children?

$arr = Categories::findOne(['_id' => '33b55aa654bce61356000000']); //таким образом я не смогу найти любой элемент, только первый
var_dump($arr)

Есть ли еще какие-то способы получить такие данные? Или может нужно пересмотреть структуру БД? как вообще лучше организовать базу к примеру магазина с вложеными категориями и продуктами в них? Спасибо.

READ ALSO
Скопировать таблицу скриптом

Скопировать таблицу скриптом

Добрый деньЗадался таким вопросом

229
Лишние символы в ответе сервера

Лишние символы в ответе сервера

Я уже задавал этот вопрос в английской ветке, но ответов не былоНадеюсь, это не есть дубликат

270
Не загружаются фотографии (VK API)

Не загружаются фотографии (VK API)

ЗдравствуйтеНужно загрузить фотографии в VK по ссылке, полученной методом photos

238