[node.js] MongoDB에서 날짜별로 컬렉션을 정렬하는 방법은 무엇입니까?

Node.JS와 함께 MongoDB를 사용하고 있습니다. 날짜와 다른 행을 포함하는 컬렉션이 있습니다. 날짜는 JavaScript Date객체입니다.

이 컬렉션을 날짜별로 정렬하려면 어떻게해야합니까?



답변

@JohnnyHK 답변에 대한 약간의 수정

collection.find().sort({datefield: -1}, function(err, cursor){...});

많은 사용 사례에서 우리는 최신 레코드를 반환하기를 원합니다 (예 : 최신 업데이트 / 삽입).


답변

날짜 별 정렬에는 특별한 것이 필요하지 않습니다. 컬렉션의 원하는 날짜 필드를 기준으로 정렬하면됩니다.

1.4.28 node.js 기본 드라이버 용으로 업데이트되었으며 datefield다음 방법 중 하나 를 사용하여 오름차순으로 정렬 할 수 있습니다 .

collection.find().sort({datefield: 1}).toArray(function(err, docs) {...});
collection.find().sort('datefield', 1).toArray(function(err, docs) {...});
collection.find().sort([['datefield', 1]]).toArray(function(err, docs) {...});
collection.find({}, {sort: {datefield: 1}}).toArray(function(err, docs) {...});
collection.find({}, {sort: [['datefield', 1]]}).toArray(function(err, docs) {...});

'asc''ascending'또한 대신 사용할 수 있습니다 1.

정렬 내림차순, 사용하려면 'desc', 'descending'또는 -1의 장소 1.


답변

db.getCollection('').find({}).sort({_id:-1}) 

삽입 날짜를 기준으로 컬렉션이 내림차순으로 정렬됩니다.


답변

Sushant Gupta의 답변은 약간 구식이며 더 이상 작동하지 않습니다.

다음 스 니펫은 이제 다음과 같아야합니다.

collection.find({}, {"sort" : ['datefield', 'asc']} ).toArray(function(err,docs) {});


답변

이것은 나를 위해 일했습니다.

collection.find({}, {"sort" : [['datefield', 'asc']]}, function (err, docs) { ... });

Node.js, Express.js 및 Monk 사용


답변

collection.find().sort('date':1).exec(function(err, doc) {});

이것은 나를 위해 일했다

참조 https://docs.mongodb.org/getting-started/node/query/


답변

몽구스를 사용하면 다음과 같이 간단합니다.

collection.find().sort('-date').exec(function(err, collectionItems) {
  // here's your code
})