具有条件的MongoDB随机汇总查询

时间:2019-01-07 12:08:50

标签: php linux database mongodb aggregation

我将mongodb与php结合使用,并且我有一个数据库,每次都能通过聚合查询从中获得一个随机记录,但是我特别需要仅将语言设置为英语的随机记录。我已经在每个记录中设置了一个“ lang”字段。

目前,我有以下代码来提取随机记录。

$dbname = 'project';
$m = new MongoClient("mongodb://127.0.0.1:27017"); 
$videosdb = $m->$dbname->videos;
$randvideo = $videosdb->aggregate(array('$sample'=>array("size"=>1)));

任何人都可以帮忙!

1 个答案:

答案 0 :(得分:1)

如果要查找带有"lang" = "english"的文档,则可以像这样使用$match条件进行汇总:

db.articles.aggregate(
    [ { $match : { author : "dave" } } ]
);

更多详细信息可以在这里找到:https://docs.mongodb.com/manual/reference/operator/aggregation/match/

在您的情况下查询将如下所示:

$videosdb->aggregate(
          array('$match'=>array("language"=>"English")),
          array('$sample'=>array("size"=>1)));