#77 Sorting result | Using MongoDB with Express| A Complete NODE JS Course

  Рет қаралды 7,052

procademy

procademy

Күн бұрын

In this lecture you will learn how to sort a result in ascending or descending order using mongoose sort method, in the express app.

Пікірлер: 49
@saisachidanandasahoo5769
@saisachidanandasahoo5769 6 ай бұрын
//It should work let queryStr = JSON.stringify(req.query); queryStr = queryStr.replace(/\b(gte|gt|lte|lt)\b/g, (match) => `$${match}`); const queryObj = JSON.parse(queryStr); // Remove 'sort' from queryObj if(req.query.sort) { delete queryObj.sort; } let query = Movie.find(queryObj); if(req.query.sort) { query = query.sort(req.query.sort); } const movies = await query;
@Ranta129
@Ranta129 Жыл бұрын
Sir i want to ask, when i use queryObj as a parameter in Movie.find() method i cant sort the movie and it will return an empty object in postman. Is it not possible to have sort parameter and other parameter such as duration etc in 1 request? Im using mongoose 7.1.1 version btw
@procademy
@procademy Жыл бұрын
For such cases i have mentioned two solutions in the filter lecture. You can use that solution where we are removing other query parameters like sort field etc. To make the filter code work
@anxhelocenollari4269
@anxhelocenollari4269 Жыл бұрын
i saw that but we want to have the logic for both implemented. So if we use the filter in the filter section does it mean that we cannot do the sorting? and otherwise?@@procademy
@pradeepgoud1436
@pradeepgoud1436 6 ай бұрын
Yes bro am also facing same problem
@leapthree8491
@leapthree8491 6 ай бұрын
Same here. Were you able to find a solution?@@pradeepgoud1436
@acupoflie
@acupoflie 9 ай бұрын
Fixed Mongoose problem add delete queryObj.sort before the query = Movie.find(queryObj) it would work for someones who have the problem with this, this solve is for Mongoose 7.0 or later
@taiwotopesunday
@taiwotopesunday 7 ай бұрын
This is working fine now. Both filters and sorting are working together.
@midunc5317
@midunc5317 2 ай бұрын
what is the reason?
@acupoflie
@acupoflie 2 ай бұрын
@@midunc5317 mongoose have to do it automatically but after 7.0 you have to it manually
@hassannouri9796
@hassannouri9796 Ай бұрын
❤❤❤
@bhargaviroyal5866
@bhargaviroyal5866 9 ай бұрын
I fixed it for version 7 , version 8 let query=Movie.find(queryObj); let query1=Movie.find(); if(req.query.sort){ query=query1.sort(req.query.sort); } const movies=await query;
@RHILL-hb1hr
@RHILL-hb1hr 7 ай бұрын
thanks!
@ThangaBujji
@ThangaBujji 3 ай бұрын
Thanks you.. It working
@muhangielioda
@muhangielioda 10 ай бұрын
how do we implement where as type in the form then it keeps bring results of search typing words
@usmanrangrez-cd7zj
@usmanrangrez-cd7zj 6 ай бұрын
Explanation with comments Clean: const filterMovie = async (req, res) => { try { const excludeFields = ["sort", "page", "limit", "fields"]; let queryObj = { ...req.query }; excludeFields.forEach((field) => { delete queryObj[field]; }); let queryStr = JSON.stringify(queryObj); queryStr = queryStr.replace(/\b(gte|gt|lte|lt)\b/g, (match) => { return `$${match}`; }); queryObj = JSON.parse(queryStr); let query = Movie.find(queryObj); if (req.query.sort) { const sortCriteria = req.query.sort.split(",").join(" "); query = query.sort(sortCriteria); } else { query = query.sort({ createdAt: -1 }); } const movies = await query; if (movies.length === 0) { return res.status(404).json({ message: "No movies match your criteria!", }); } res.status(200).json({ status: "success", data: { movies, }, }); } catch (error) { res.status(500).json({ status: "fail", message: error.message, }); } }; Check Reply for commented one
@vinayvallychaladi6193
@vinayvallychaladi6193 Жыл бұрын
Thanks for the vedios...very informative...I am not getting search results after sorting Response returns status as success but movies is empty.
@michelnunes4421
@michelnunes4421 Жыл бұрын
I'm having the same problem, all filters are working just fine but sort always returns a empty object. I have tried console.log() every step of the code and every thing seems to be working just fine. I can't figure out what is happening. If you find a fix please let me know.
@awesomeguy6427
@awesomeguy6427 Жыл бұрын
@@michelnunes4421 fixed it
@006daredevil
@006daredevil Жыл бұрын
@@awesomeguy6427 Can you share the code? How did you fix it?
@infotake
@infotake Жыл бұрын
,@@awesomeguy6427 how do you fix it?
@mozammilahmad8431
@mozammilahmad8431 Жыл бұрын
I fixed it
@abdosamy8981
@abdosamy8981 Жыл бұрын
sort not working. returning an empty movies array. Any Fix?
@procademy
@procademy Жыл бұрын
Are you using mongoose 7 version? Might be because of version difference.
@abdosamy8981
@abdosamy8981 Жыл бұрын
@@procademy Yes, I'm using version 7. And I figured out what was wrong. I needed to remove the field from the queryObj before I pass it to the query.
@rishabhrishabh3804
@rishabhrishabh3804 11 ай бұрын
@@abdosamy8981 can you pls tell how
@rishabhrishabh3804
@rishabhrishabh3804 10 ай бұрын
@@abdosamy8981 But then filtering method dont work
@taiwotopesunday
@taiwotopesunday 7 ай бұрын
Am using version 8, but sort() still returns an empty array. How so I can fix this, please?
@mozammilahmad8431
@mozammilahmad8431 Жыл бұрын
my sort method not works try { let queryStr=JSON.stringify(req.query); queryStr=queryStr.replace(/\b(gte|gt|lte|lt)\b/g,(match)=>`$${match}`); let queryObj=JSON.parse(queryStr); let query = Movie.find(queryObj) if(req.query.sort){ query=query.sort(req.query.sort) } const movies=await query; //THIS LOG [ ] EMPTY ARRAY console.log(movies) res.status(200).json({ status: "success", length: movies.length, data: { movies: movies, }, }); } catch (err) { res.status(404).json({ status: "fail", message: err.message, }); } };
@procademy
@procademy Жыл бұрын
Is the mongoose version which you are using is mongoose 7?
@mozammilahmad8431
@mozammilahmad8431 Жыл бұрын
@@procademy 7.0.3
@dexterlecter8510
@dexterlecter8510 11 ай бұрын
sameee
@dexterlecter8510
@dexterlecter8510 11 ай бұрын
@@shafiullah3714 help
@RohithAppala-p1k
@RohithAppala-p1k 5 ай бұрын
Good explanation
@laluprasad3775
@laluprasad3775 Жыл бұрын
Bro complete node js ,i think it is end to volpl😮
@tanomenossorvas5270
@tanomenossorvas5270 9 ай бұрын
Great content
@Baig_Sahab00
@Baig_Sahab00 Жыл бұрын
bro sort method is not working in my code that to everything is perfect.
@mozammilahmad8431
@mozammilahmad8431 Жыл бұрын
I fixed it
@abdosamy8981
@abdosamy8981 Жыл бұрын
@@mozammilahmad8431 How?
@csais2472
@csais2472 Жыл бұрын
@@abdosamy8981 Just erase queryObj from the query variable params because queryObj is giving the whole request object and not the actual query from database. Should be like this let query = Movie.find();
@akhilp3826
@akhilp3826 Жыл бұрын
@@csais2472 worked that worked thanks
@anxhelocenollari4269
@anxhelocenollari4269 Жыл бұрын
but does it mean that we lost the abbility to find by different parameters other than sort?@@csais2472
РОДИТЕЛИ НА ШКОЛЬНОМ ПРАЗДНИКЕ
01:00
SIDELNIKOVVV
Рет қаралды 2,3 МЛН
小丑妹妹插队被妈妈教训!#小丑#路飞#家庭#搞笑
00:12
家庭搞笑日记
Рет қаралды 38 МЛН
💩Поу и Поулина ☠️МОЧАТ 😖Хмурых Тварей?!
00:34
Ной Анимация
Рет қаралды 2 МЛН
Build REST API with Node Express MongoDB - Sorting and Limiting Fields #25
11:02
Build A REST API With Node.js, Express, & MongoDB - Quick
28:56
Web Dev Simplified
Рет қаралды 825 М.
Complete MongoDB Tutorial #23 - Pagination
7:15
Net Ninja
Рет қаралды 59 М.
The Story of Next.js
12:13
uidotdev
Рет қаралды 579 М.
I tried 8 different Postgres ORMs
9:46
Beyond Fireship
Рет қаралды 414 М.
РОДИТЕЛИ НА ШКОЛЬНОМ ПРАЗДНИКЕ
01:00
SIDELNIKOVVV
Рет қаралды 2,3 МЛН