Я использую 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)));
Может кто-нибудь помочь!
Если вы хотите найти 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)));
Других решений пока нет …