MongoDB和PHP驱动程序

时间:2015-11-10 15:33:39

标签: php mongodb

mongo中有一个类似于

的命令行语法
db.collection.find('nested_array.some_nested_key':'some_nested_value',{'nested_array.$' => 1})

这将查找并返回与条件匹配的“nested_array”,而不是整个对象。

问题是我似乎无法在php驱动程序中找到“。$”等效物。有人有主意吗?

1 个答案:

答案 0 :(得分:2)

MongoDB PHP驱动程序中的方法类似于它们的mongo shell对应项,因此使用 $ positional 运算符的投影也使用关联数组来映射 fields 到MongoDB查询。这样的事情会产生预期的结果:

<?php
    $m = new MongoClient();
    $db = $m->selectDB("test");
    $collection = new MongoCollection($db, "collection_name");

    // search for nested array
    $fruitQuery = array("nested_array.some_nested_key" => "some_nested_value");

    // projection (fields to include)
    $projection =  array("_id" => false, "nested_array.$" => true);

    $cursor = $collection->find($query, $projection);
    foreach ($cursor as $doc) {
        var_dump($doc);
    }
?>