私はMongoDB 集約 PHPを使用してクエリを実行しようとしています。PHPでMongoDB集約
は基本的に、私は怒鳴るクエリを持って、MongoDBのシェルを使用している場合には問題なく実行されます。
db.getCollection('frete').aggregate([
{$match : {
'$and': [
{ 'data_UTC': {$gte: ISODate('2017-01-20T00:00:00-02:00'), $lt: ISODate('2017-01-29T00:00:00-02:00') } },
{ 'carga': { $regex : new RegExp('soja', "i") }}
]
}
},
{$group : {_id: { $dateToString: { format: "%Y-%m-%d", date: { $subtract: ['$data_UTC', 1000 * 60 * 60 * 2] } } }, qtd_acessos: {$sum:1} }},
{ $sort: { _id: -1 } },
{ $limit: 50}
])
をしかし、私はPHPを経由して、同じクエリを実行しようとすると、(私のcomposer.json
が"mongodb/mongodb": "^1.0.0"
依存関係を使用しています) MongoDB PHP's aggregate()
メソッドを呼び出した後に応答が返されません。
上記のクエリをPHPの同等のものに翻訳するのに手伝ってもらえますか?私には次のものがありますが、何かが足りなくなっているかもしれません。
$start = new \MongoDB\BSON\UTCDateTime(strtotime('2017-01-20T00:00:00-02:00'));
$end = new \MongoDB\BSON\UTCDateTime(strtotime('2017-01-29T00:00:00-02:00'));
$regex = new \MongoDB\BSON\Regex('soja', 'i');
$filter = [
['$match' => [
'$and' => [
['data_UTC' => ['$gte' => $start, '$lt' => $end]],
['carga' => ['$regex' => $regex]]
]
]
],
['$group' => ['_id' => ['$dateToString' => ['format' => "%Y-%m-%d", 'date' => ['$subtract' => ['$data_UTC', 1000 * 60 * 60 * 2]]]], 'qtd_acessos' => ['$sum' => 1]]],
['$sort' => ['_id' => -1]],
['$limit' => 50]
];
ありがとう!