[
{
"trip": [
{
"destination": "Tokyo",
"time": 8.56,
"price": 80
},
{
"destination": "Paris",
"time": 2.36,
"price": 9
},
{
"destination": "Goa",
"time": 4.56,
"price": 30
}
]
},
{
"trip": [
{
"destination": "Tokyo",
"time": 6.26,
"price": 23
},
{
"destination": "Paris",
"time": 7.46,
"price": 45
},
{
"destination": "Goa",
"time": 8.98,
"price": 39
}
]
}
]
我想对上面的文档进行排序,该文档存储在MongoDB中,我正在使用PHP。
情景:在前端,我有一个下拉列表,我正在显示旅行(即东京,巴黎,果阿),我有一个标题为" Price&#的按钮34;显示从最低价到最高价的行程。
问题:
当我选择时,让我们说巴黎和我点击价格按钮,上面的文件应按价格排序(从最低到最高)。
排序应该应用于目的地为巴黎的对象。
此文档最高可达25/28 MB(此处我只是展示了我的文档的小预览)。
我尝试了什么:
db.testCollection.find({
'trip': {
$elemMatch: {
'destination':'Paris'
}
}
}).sort({
"trip.price":1
})
还有更多。
任何小帮助都非常感谢,谢谢。
答案 0 :(得分:0)
试试这个:
$collection = $db->createCollection("emp_details");
$sort = array('col_name' => 1); // you can change this array on the behalf of some condition like:
if(something)
{
$sort = array('col_name' => 1); // asc
}
else
{
$sort = array('col_name' => -1); // desc
}
$resultSet = $collection->find()->sort($sort);
这适合我。