我在代码中使用Mongo PHP库:https://github.com/mongodb/mongo-php-library/
我正在尝试使用Mongo PHP Library中的聚合函数向MongoDB发送以下查询:
块引用
db.customers.aggregate(
{$match: {Country: "India", Email: {$in: [/.*@gmail.com*/,/.*@hotmail.com*/] } } },
{$group : {_id : {Email: "Email"}, "count" : {$sum : 1} } },
{$sort : {"count" : -1} }
)
此查询在MongoDB服务器上正常工作。但是在PHP代码中,它无法正常工作。
块引用
$query = array(
['$match' => ['Country' => "India",
'Email' => ['$in' => ['/.*@gmail.com*/','/.*@hotmail.com*/']]
]
],
['$group' => ['_id' => ['Email' => '$Email']
'count' => ['$sum' => 1]
]
],
['$sort' => ['count' => -1]]
);
$cursor = $this->customers->aggregate($query);
$ in数组不能使用上面的通配符模式。它不会显示任何错误或结果。但它适用于确切的电子邮件。我怎么能在$ match
下的$ in数组中提到模式请建议我如何在Mongo PHP库中提交通配符模式。
答案 0 :(得分:1)
试试这个
$query = array(
array('$match' => array('Country' => "India",'Email' =>
array('$in' => array('/.*@gmail.com*/','/.*@hotmail.com*/'))
)),
array('$group' => array('_id' => array('Email' => '$Email')
'count' => array('$sum' => 1)
)
),
array('$sort' => array('count' => -1))
);