MongoCollection小组提问

时间:2011-04-27 08:38:26

标签: php mongodb

<?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”=&gt; 1而不是symply写“类别”?

1 个答案:

答案 0 :(得分:1)

  

为什么需要写"category" => 1而不是写一下"category"

MongoDB的查询引擎使用了JSON对象。所以一切都是键值对。 PHP驱动程序使用哈希表(或词典)表示键值对。

如果查看aggregation documentation,则会有以下示例:

key: { a:true, b:true }

在PHP中,这将表示为

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

我同意1似乎没必要,但它是为了保持JSON语法有效。