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
'programing' 카테고리의 다른 글
내 각도 구성JS 어플리케이션 (0) | 2023.03.15 |
---|---|
MongoDB 다대다 어소시에이션 (0) | 2023.03.15 |
리스앵귤러와 함께 GET을 통해 파라미터 배열을 전송하는 방법 (0) | 2023.03.15 |
Wordpress 플러그인 설치: 디렉터리를 만들 수 없습니다. (0) | 2023.03.15 |
Angular에서 현재 스코프 돔 요소를 얻는 방법JS 컨트롤러? (0) | 2023.03.15 |