gpt4 book ai didi

javascript - MongoDB 与 PHP 聚合

转载 作者:可可西里 更新时间:2023-11-01 10:50:07 24 4
gpt4 key购买 nike

我正在尝试使用 PHP 执行 MongoDB 聚合 查询。

基本上,我得到了下面的查询,并且在使用 MongoDB Shell 时它可以毫无问题地执行:

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 的 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]
];

谢谢!

最佳答案

检查 mongodb 标准库是否适合您。

 $pipeline = array(
array('$match' =>
array('$and' =>
array( array('data_UTC' => array('$gte' => new MongoDate(strtotime('2017-01-20T00:00:00-02:00')), $lt: new MongoDate(strtotime('2017-01-20T00:00:00-02:00')))),
array('carga' => array($regex => new MongoRegex("/soja$/i")))
)
)
),
array('$group' => array ('_id' => array('$dateToString' => array('format' => "%Y-%m-%d", 'date' => array('$subtract' => array('$data_UTC', 1000 * 60 * 60 * 2)))),
'qtd_acessos' => array('$sum' => 1 ) ),
array('$sort' => array(_id => -1)),
array('$limit' => 50)
)
)

$this->mongodb->aggregate($pipeline, 'db_collection_name');

关于javascript - MongoDB 与 PHP 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42144427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com