从MongoDB获取值作为推送数组

时间:2018-07-22 03:27:18

标签: mongodb

我正在尝试执行类似于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的新手,正在学习绳索。

0 个答案:

没有答案