2015-11-10 3 views
1

Существует командная строка синтаксиса в Монго, что идет что-то вроде этогоMongoDB и драйвер PHP

db.collection.find('nested_array.some_nested_key':'some_nested_value',{'nested_array.$' => 1}) 

Это находит и возвращает только «nested_array (s)», которые соответствуют критериям, и не весь объект.

Проблема: я не могу найти эквивалент «. $» В драйвере php. у кого есть идеи?

ответ

2

методы в драйвере MongoDB PHP похожи на своих коллег Монго оболочки, так что проекция с оператором на $ 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); 
    } 
?> 
Смежные вопросы