2

我在 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

4

1 回答 1

1

查询数组中的元素时,您的结果当前将默认返回整个文档。

您可以使用 $elemMatch 返回与具有特定报告 ID 的子数组匹配的整个文档。

JS shell 的示例 .. 查找带有 report_ids=2 的文档:

  db.collection.find({'deshboard_report': {"$elemMatch": {report_ids: 2}}});
于 2012-06-07T16:35:28.613 回答