MongoDB и драйвер PHP

1

В mongo есть синтаксис командной строки, который выглядит примерно так:

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

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

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

Теги:

1 ответ

2
Лучший ответ

Методы в PHP-скрипте MongoDB похожи на их копии оболочки mongo, поэтому проекция с помощью $ positional оператора $ positional также использует ассоциативные массивы для сопоставления полей с запросами 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);
    }
?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню