从文档数组中检索零件

时间:2013-04-03 12:01:38

标签: php mongodb

我正在使用mongodb和php构建项目,因此我的数据库包含以下记录。

{
    "_id": {
        "$id": "515bb7e2a00b2add0b000001"
    },
    "user_id": "user_8888",
    "events": {
        "common test I": {
            "subject": "common test I",
            "start_date": "04/14/2013",
            "start_time": "8.00 AM",
            "end_date": "04/14/2013",
            "end_time": "10.30 AM",
            "all_day_event": "false",
            "discription": "no discription",
            "location": "STC",
            "private": "false",
            "time_zone": "IST",
            "alarm": "true",
            "alarm_threshold": "5",
            "status": "true"
        }
    }
}

所以只使用查询,我如何从记录中检索“常见测试I”事件。结果应该是:

{
    "subject": "common test I",
    "start_date": "04/14/2013",
    "start_time": "8.00 AM",
    "end_date": "04/14/2013",
    "end_time": "10.30 AM",
    "all_day_event": "false",
    "discription": "no discription",
    "location": "STC",
    "private": "false",
    "time_zone": "IST",
    "alarm": "true",
    "alarm_threshold": "5",
    "status": "true"
}

有可能吗?

2 个答案:

答案 0 :(得分:0)

db.collection.find({},{"events.common test I":1,_id:0})

答案 1 :(得分:0)

您可以在find方法中指定要检索的文档的哪些字段。

请参阅PHP.net Reference Manual for MongoCollection::find

这样的东西
$collection->find(array(), array('events.common test I'=>true));

请注意“始终返回_id字段。”

虽然我建议不要在对象键/字段名中使用空格。