programing

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

copyandpastes 2023. 3. 15. 23:33
반응형

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

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

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

@Johnny를 약간 수정했을 뿐입니다.HK답변

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

많은 사용 사례에서 최신 레코드를 반환하고 싶습니다(최신 업데이트/삽입 등).

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

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

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

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.

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/ 참조

mongoose를 사용하면 다음과 같이 간단합니다.

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

추가 정사각형 [ ] 매개 변수를 정렬하려면 괄호가 필요합니다.

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

날짜 형식이 다음과 같은 경우: 14/02/1900 ----> 몇 가지 문제가 발견될 수 있습니다.

ISOdate 를 다음과 같이 사용해야 합니다.

var start_date = new Date(2012, 07, x, x, x); 

----> 결과 ----> ISODate ("2012-07-14T08:14:00.201Z")

이제 쿼리를 다음과 같이 사용합니다.

 collection.find( { query : query ,$orderby :{start_date : -1}} ,function (err, cursor) {...}

이상입니다:)

mongoose에서는 'toArray'를 사용할 수 없어서 다음 오류가 발생하였습니다.TypeError: Collection.find(...).sort(...).toArray is not a function.ToArray 함수는 Native MongoDB NodeJS 드라이버(참조)의 커서 클래스에 있습니다.

또한 정렬은 하나의 매개 변수만 허용하므로 매개 변수 안에 함수를 전달할 수 없습니다.

이것은 나에게 효과가 있었다(Emil의 답변).

collection.find().sort('-date').exec(function(error, result) {
  // Your code
})

언급URL : https://stackoverflow.com/questions/13847766/how-to-sort-a-collection-by-date-in-mongodb

반응형