我在我的代码中使用mongo php库:https://github.com/mongodb/mongo-php-library/
我试图使用Mongo PHP库中的汇总函数将以下查询发送到MongoDB:
blockquote
db.customers.aggregate(
{$match: {Country: "India", Email: {$in: [/.*@gmail.com*/,/.*@hotmail.com*/] } } },
{$group : {_id : {Email: "Email"}, "count" : {$sum : 1} } },
{$sort : {"count" : -1} }
)
此查询在MongoDB服务器上正常工作。但是在PHP代码中它不起作用。
blockquote
$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 Array不如上所述使用通配符模式。它没有显示任何错误或结果。但它可以与确切的电子邮件一起使用。我怎么能在$匹配下提及$ array中的$中的模式
请建议如何在Mongo PHP库中提交通配符图案。
尝试此
$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))
);