[node.js] 몽구스에서 날짜별로 어떻게 정렬합니까? (node.js)

몽구스 에서이 쿼리를 실행한다고 가정 해 봅시다.

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