my $books = $mongo->db('test')->get_collection('books')->aggregate( [ {'$match' => {categories => fiction}}, {'$project' => { 'av' => {'$cmp' => ['$available', 0] }, title => 1, scr => {'$ifNull' => ['$score_fiction' , '$score'] }, time =>1} }, {'$sort' => {av => -1, scr => -1, time => -1}}, {'$limit' => 10} ], {cursor => 1});
while (my $book = $books->next) {print $book->{title} . " [" . $book->{scr} . "]\n";
db.books.aggregate([{'$match' : {categories : 'fiction'},
{'$project' : {'av' : {'$cmp' : ['$available', 0] },
title : 1,
scr : {'$ifNull' : ['$score_fiction' , '$score'] },
time:1}},
{'$sort' : {av : -1,scr :-1, time : -1}},
{'$limit': 10}]);