Mongodb 带查找条件的随机聚合查询

Mongodb random aggragate query with find condition

我正在使用 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)));

谁能帮忙!

如果你想找到带有 "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)));