【问题标题】:Mongodb random aggragate query with find condition带有查找条件的 Mongodb 随机聚合查询
【发布时间】:2019-01-07 12:08:50
【问题描述】:

我将 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)));

谁能帮忙!

【问题讨论】:

  • 您可以使用$match过滤数据...$videosdb->aggregate( array('$match'=>array('languate'=>'english')), array('$sample'=>array("size"=>1)) )
  • 谢谢你成功了!

标签: php linux database mongodb aggregation


【解决方案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)));

【讨论】:

  • 太好了,如果对您有帮助,请接受/支持答案:)
猜你喜欢
  • 2021-01-11
  • 2018-07-09
  • 2020-11-23
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多