Mongodb случайный агрегированный запрос с условием поиска - PullRequest
0 голосов
/ 07 января 2019

Я использую 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 голосов
/ 07 января 2019

Если вы хотите найти thew документы с "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)));
...