按价格sortingMongodb数据

目标:我试图find一种方法,让用户按照最大和最小价格在一个索引页面上对租赁进行sorting。

我的问题是我能弄清楚如何使它工作的唯一方法是为低价格和高价格创build两个单独的页面。 我只想要一个主要的索引。

下面显示的pricelow页面过滤数据从低价格到高价格

app.get("/pricelow", function(req, res){ Listings.find({}).sort({price: 1}).exec(function(err, allListings){ if(err){ console.log(err); } else { res.render("pricelow",{listings:allListings}); } }) }); 

//下面显示的价格高的页面将数据从高价格过滤到低价格

 app.get("/pricehigh", function(req, res){ Listings.find({}).sort({price: -1}).exec(function(err, allListings){ if(err){ console.log(err); } else { res.render("pricehigh",{listings:allListings}); } }) }); 

正如您可能已经注意到的那样,两个代码之间唯一的区别就是sort()条件。

幸运的是,sorting可以通过多种方式完成。

国际海事组织最简单的方法是通过查询parameter passing一个string,例如price (升序)或-price (降序)。

将两个路由处理程序合并为一个

 app.get('/rentals', function (req, res) { Listings.find({}).sort(req.query.sort).exec(function (err, listings) { if (err) { console.log(err); } else { res.render('rentals', { listings: listings }); } }) }); 

当你sorting,打电话/rentals?sort=price/rentals?sort=-price 。 这种方法还允许您使用其他字段,如/rentals?sort=anotherField