mongodb查询在数组

时间:2015-07-29 11:27:23

标签: mongodb mongodb-query

我很难找到查询。

我在mongodb网格集中有两个文档:

{
    "_id" : ObjectId("55b8ac2c1a80142e7f7b23cd"),
    "metadata" : {
        "filename" : "test2.xml",
        "contentType" : "application/xml"
    },
    "data" : {
        "type_file" : "test",
        "vision_id" : "6987"
    },
    "filename" : "test2.xml",
    "uploadDate" : ISODate("2015-07-29T10:34:20.991Z"),
    "length" : NumberLong(9582),
    "chunkSize" : NumberLong(261120),
    "md5" : "ea40283994f451b357555e53d186ed1e"
}
{
    "_id" : ObjectId("55b8ac2c1a80142e7f7b23cd"),
    "metadata" : {
        "filename" : "test.xml",
        "contentType" : "application/xml"
    },
    "data" : {
        "type_file" : "test",
        "vision_id" : "1282"
    },
    "filename" : "test.xml",
    "uploadDate" : ISODate("2015-07-29T10:34:20.991Z"),
    "length" : NumberLong(9582),
    "chunkSize" : NumberLong(261120),
    "md5" : "ea40283994f451b357555e53d186ed1e"
}

现在我想创建一个查询文件,其中" filename" =" test.xml"标签" vision_id" =" 1282"。

现在我做了这样的搜索查询:

$query = 
    array('$and' => 
        array(
            array("filename" => "text.xml),
            array("data" => array("vision_id" => "1282")),
        ),
    );
$cursor = $gridFS->find($query)

如果我这样做,我就得不到结果:

当我删除行array("data" => array("vision_id" => "1282"))时,我会收到最后一个文档。 (正如我预测的那样)。

有人能以正确的方式推动我在数据阵列中进行搜索吗?

亲切的问候,

Arjan Kroon

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。

$query = 
    array('$and' => 
        array(
            array("filename" => "text.xml"),
            array("data.vision_id" => "1282"),
        ),
    );