在Yii2

时间:2016-05-11 12:16:17

标签: php mongodb yii2

如何从MongoDB获取N个随机文档(使用Yii2)?

是否有一些特殊方法,例如

Products::find()->random(20)->asArray()->all()

2 个答案:

答案 0 :(得分:1)

假设您已创建数据库连接组件为mongodb

$collection = \Yii::$app->mongodb->getCollection('yourcollection');
$result = $collection->aggregate([
            [
                "\$sample" => ["size"=>20]
            ]
          ]);
vardump($result);

答案 1 :(得分:0)

就MongoDB而言,您可以使用聚合框架$sample(版本3.2中的新增功能)来实现此目的:

db.products.aggregate([
    { $sample: { size: 20 } }
])

以上聚合将从产品系列中选择20个随机文档。