0

私はmongoが初めてです。「コード」のリストのエントリ数を数えようとしています

例えば。

「CODE」というフィールドのデータ

asd
fgh
jkl
asd

私が解決しようとしているアイデアは、MySQL と同等のことを行う方法です。

select count(id) from table where (CODE='asd' or CODE='fgh') group by CODE

それが返すように:

asd 2
fgh 1

jkl統計を無視します

次の出発点が与えられます。

$db = $connection->$database;
$collection = $db->$table;

これについてどうすればよいですか、mongo で map/reduce を読みましたが、現時点ではあまり意味がありません。

これを機能させるためのガイダンスをいただければ幸いです。

4

1 に答える 1

2

Map Reduce を使用するか、集約フレームワークを使用することができます。これは、SQL 担当者にとってより理にかなっている可能性があります。

$collection->aggregate(array(
    array('$match' => array('CODE' => array('$in' => array('asd','fgh')))),
    array('$group' => array('_id' => '$CODE', 'count' => array('$sum' => 1)))
));

これは次のようなものです:

select count(id) from table where (CODE='asd' or CODE='fgh') group by CODE

そして戻ります:

{
    {_id: asd, count: 2},
    //next document
}

参考として、ドキュメントを読み、ここで例を見てください: http://docs.mongodb.org/manual/core/aggregation/

于 2013-04-22T07:50:15.053 に答える