Mongodb случайный агрегированный запрос с условием поиска

Я использую 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)));

Может кто-нибудь помочь!

0

Решение

Если вы хотите найти 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)));
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]