私はmongoDBとphpの最初のステップで、集計の仕組みを理解しようとしています。私はコマンドラインからそれらを使用する方法に関するおおよそのアイデアを持っていますが、私はPHPのドライバのためにこれを翻訳しようとしています。私は私がやっていることはPHP MongoDBのドライバと集約
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->myNewDb->restaurants;
$results = $collection->aggregate(['name' => '$name'],['$group' => ['cuisine' => ['sum' => '$sum']]]);
で、レストランはDB、私はちょうど場所のためにどのように多くのレストランをカウントするこの
{
"_id" : ObjectId("59a5211e107765480896f3f8"),
"address" : {
"building" : "284",
"coord" : [
-73.9829239,
40.6580753
],
"street" : "Prospect Park West",
"zipcode" : "11215"
},
"borough" : "Brooklyn",
"cuisine" : "American",
"grades" : [
{
"date" : ISODate("2014-11-19T00:00:00Z"),
"grade" : "A",
"score" : 11
},
{
"date" : ISODate("2013-11-14T00:00:00Z"),
"grade" : "A",
"score" : 2
},
{
"date" : ISODate("2012-12-05T00:00:00Z"),
"grade" : "A",
"score" : 13
},
{
"date" : ISODate("2012-05-17T00:00:00Z"),
"grade" : "A",
"score" : 11
}
],
"name" : "The Movable Feast",
"restaurant_id" : "40361606"
}
のようなレコードのリストをdexample使用していますし、このエラーが発生しています
Fatal error: Uncaught exception 'MongoDB\Exception\InvalidArgumentException' with message '$pipeline is not a list (unexpected index: "name")'
ご意見はありますか?私はphp.net上の良いドキュメントを見つけることができません。パイプラインが配列として渡さなければならないことを、
おかげ M
「翻訳する」とはどういう意味ですか?ちょうどすべての言語で、広く利用できるJavaScript Object Notationのサンプルと簡単にやり取りすることができます。基本的な前提はPHPを使って '{}'や '[]'を '[]'や 'array()'に置き換えることです。そのことを覚えておいても、構文に従うことには至りません。 '$ group'は' _id'を必要とします。 '['name' => '$ name']'はあなたが何をすると思われるか分かりません。おそらく、期待される成果が何であるべきかを述べるべきです。 –