Codeigniter с подмассивом MongoDB

У меня есть тип коллекции в mongodb:

Array
(
[_id] => 4fcf383a5990581c0b000015
[user_id] => 1
[username] => admin
[password] => 21232f297a57a5a743894a0e4a801fc3
[first_name] => admin
[last_name] => admin
[address] => 
[address_2] => 
 [deshboard_report] => Array
    (
        [0] => Array
            (
                [report_ids] => 1
                [rpt_color] => color-red
                [rpt_status] => max
                [report_title] => Last Point
                [report_file] => last_location
            )
        [1] => Array
            (
                [report_ids] => 2
                [rpt_color] => color-green
                [rpt_status] => max
                [report_title] => Inactive Device
                [report_file] => inactive_devices
            )
    )
)

Я хочу выполнить поиск в report_ids, и этот поиск возвращает подмассив deshboard_report, как это возможно?

Я использую эту библиотеку для подключения: https://github.com/alexbilbie/codeigniter-mongodb-library< /а>


person Dhaval Dhami    schedule 06.06.2012    source источник
comment
просто для справки тот же вопрос был задан и здесь: группы .google.com/forum/?fromgroups#!topic/mongodb-user/   -  person Barrie    schedule 06.06.2012


Ответы (1)


При запросе элемента в массиве ваши результаты в настоящее время будут возвращать весь документ по умолчанию.

Вы можете вернуть целые документы, соответствующие подмассивам с определенными идентификаторами report_id, используя $elemMatch.

Пример для оболочки JS.. найти документы с report_ids=2 :

  db.collection.find({'deshboard_report': {"$elemMatch": {report_ids: 2}}});
person Stennie    schedule 07.06.2012