몽구스 에서이 쿼리를 실행한다고 가정 해 봅시다.
Room.find({}, function(err,docs){
}).sort({date:-1});
작동하지 않습니다!
답변
몽구스에서 정렬 은 릴리스에 따라 진화하여 이러한 답변 중 일부가 더 이상 유효하지 않습니다. 의로서 전 4.1.x의 몽구스의 출시,상의 종류 내림차순 date
필드는 다음과 같은 방법으로 수행 할 수 있습니다 :
Room.find({}).sort('-date').exec(function(err, docs) { ... });
Room.find({}).sort({date: -1}).exec(function(err, docs) { ... });
Room.find({}).sort({date: 'desc'}).exec(function(err, docs) { ... });
Room.find({}).sort({date: 'descending'}).exec(function(err, docs) { ... });
Room.find({}).sort([['date', -1]]).exec(function(err, docs) { ... });
Room.find({}, null, {sort: '-date'}, function(err, docs) { ... });
Room.find({}, null, {sort: {date: -1}}, function(err, docs) { ... });
오름차순 정렬의 경우, 생략 -
의 문자열 버전 또는 사용 값에 접두사 1
, asc
또는를 ascending
.
답변
정답은 다음과 같습니다.
Blah.find({}).sort({date: -1}).execFind(function(err,docs){
});
답변
Mongoose 3.5 (.2)를 사용하여 오늘이 문제를 해결했지만이 문제를 해결하는 데 도움이되는 답변은 없습니다. 다음 코드는 트릭을 수행합니다.
Post.find().sort('-posted').find(function (err, posts) {
// user posts array
});
필요한 표준 매개 변수 find()
(예 : where 절 및 반환 필드)를 보낼 수 있지만 콜백은 할 수 없습니다 . 콜백이 없으면 연결 한 Query 객체를 반환합니다 sort()
. find()
더 많은 매개 변수를 사용하거나 사용하지 않고 다시 호출해야 합니다 (효율적인 이유로 필요하지 않음). 콜백에서 결과 집합을 가져올 수 있습니다.
답변
나는 이것을한다:
Data.find( { $query: { user: req.user }, $orderby: { dateAdded: -1 } } function ( results ) {
...
})
가장 최근의 것들이 먼저 표시됩니다.
답변
Post.find().sort({date:-1}, function(err, posts){
});
잘 작동해야합니다
편집하다:
오류가 발생하면 이것을 사용해보십시오 sort() only takes 1 Argument
.
Post.find({}, {
'_id': 0, // select keys to return here
}, {sort: '-date'}, function(err, posts) {
// use it here
});
답변
짧은 해결책 :
const query = {}
const projection = {}
const options = { sort: { id: 1 }, limit: 2, skip: 10 }
Room.find(query, projection, options).exec(function(err, docs) { ... });
답변
이것이 도움이되는지> 몽구스에서 정렬하는 방법을 참조하십시오 .
또한 이것을 읽으십시오> http://www.mongodb.org/display/DOCS/Sorting+and+Natural+Order