2012-06-06 63 views
2

我有以下类型的集合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

+0

仅供参考同样的问题已经被问这里还有:https://groups.google.com/forum/? fromgroups#!话题/ MongoDB的用户/ NRsk8frOm0U – Barrie

回答

1

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

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

例为JS壳..找到report_ids = 2文件:

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