我正在尝试执行类似于mongodb中按区域选择的最高价格。
我的思维过程是,我将首先按价格排序,然后按区域分组,然后输入该区域的前10个值。
我的数据结构如下
{
"_id":"5b506dccc00e755288ceaec6",
"title":"Mercedes Benz E Class E250 CDI Avantgarde (2013) in Mumbai",
"URL":"Null",
"price":2700000,
"region":"Mumbai",
"Man_year":2013
},
{
"_id":"5b506dccc00e755288ceaec7",
"title":"Mercedes Benz GLA Class GLA45 AMG (2016) in Mumbai",
"URL":"Null",
"price":4785000,
"region":"Mumbai",
"Man_year":2016
}
我当前的代码如下。但是,它没有显示任何内容。
app.get('/topfivecarsbyprice', function (req, res) {
//db.collection('collection').find().sort({'price':-1}).limit(10).toArray(function (err, results) {
db.collection('collection').aggregate([
{$sort: {price: -1}},{$group:{_id: "$region",values: {$pushFirst: [{_id: "$_title", price: "$price"}, 10]} }}]).toArray(function (err, results) {
res.send(results);
})
res.set({
'Cache-Control': 'no-cache'
});
});
我想要实现的是这样
{
"region":"mumbai",
"list":[{"id":"Mercedes Benz E Class E250 CDI Avantgarde (2013) in Mumbai","price":2700000},{"id":"Mercedes Benz GLA Class GLA45 AMG (2016) in Mumbai","price":4785000}]
}
请注意:我是mongo的新手,正在学习绳索。