MongoCollection group вопрос - PullRequest
       6

MongoCollection group вопрос

0 голосов
/ 27 апреля 2011
<?php

$collection->insert(array("category" => "fruit", "name" => "apple"));
$collection->insert(array("category" => "fruit", "name" => "peach"));
$collection->insert(array("category" => "fruit", "name" => "banana"));
$collection->insert(array("category" => "veggie", "name" => "corn"));
$collection->insert(array("category" => "veggie", "name" => "broccoli"));

$keys = array("category" => 1);

$initial = array("items" => array());

$reduce = "function (obj, prev) { prev.items.push(obj.name); }";

$g = $collection->group($keys, $initial, $reduce);

echo json_encode($g['retval']);

?>

непонятная строка $keys = array("category" => 1); зачем нужно писать "category" => 1 вместо простого написания "category"?

1 Ответ

1 голос
/ 02 мая 2011

зачем писать "category" => 1, а не просто писать "category"?

Механизм запросов для MongoDB использовал объекты JSON. Так что все это пара ключ-значение. Драйвер PHP представляет пары ключ-значение с использованием хеш-таблиц ( или словарей ).

Если вы посмотрите на документацию по агрегации , у нее есть следующий пример:

key: { a:true, b:true }

В PHP это будет представлено как

$key: array('a' => 1, 'b' => 1)

Я согласен с тем, что 1 кажется ненужным, но он поддерживает синтаксис JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...