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