Mongoose 집계 결과 정렬
저는 이 몽구스 문제를 해결하는 데 많은 어려움을 겪고 있습니다.
이 스키마 'Recommend'(사용자 이름, roomId, lll 및 날짜)가 있으며 해당 컬렉션에는 사용자의 권장 사항이 포함되어 있습니다.
저는 가장 추천되는 방의 목록(roomId별)을 받아야 합니다.아래는 mongoose 쿼리를 사용한 스키마와 내가 시도한 솔루션입니다.
var recommendSchema = mongoose.Schema({
username: String,
roomId: String,
ll: { type: { type: String }, coordinates: [ ] },
date: Date
})
recommendSchema.index({ ll: '2dsphere' });
var Recommend = mongoose.model('Recommend', recommendSchema);
Recommend.aggregate(
{
$group:
{
_id: '$roomId',
recommendCount: { $sum: 1 }
}
},
function (err, res) {
if (err) return handleError(err);
var resultSet = res.sort({'recommendCount': 'desc'});
}
);
집계 파이프라인에서 반환된 결과는 일반 개체에 불과합니다.따라서 정렬은 별도의 작업이 아닌 파이프라인 단계로 수행합니다.
Recommend.aggregate(
[
// Grouping pipeline
{ "$group": {
"_id": '$roomId',
"recommendCount": { "$sum": 1 }
}},
// Sorting pipeline
{ "$sort": { "recommendCount": -1 } },
// Optionally limit results
{ "$limit": 5 }
],
function(err,result) {
// Result is an array of documents
}
);
그래서 다양한 파이프라인 운영자들이 있고, 또는 다른 것들에도 사용할 수 있습니다.이것들은 어떤 순서로든, 그리고 필요한 만큼 제공될 수 있습니다.하나의 "파이프라인" 단계가 다음 단계로 이동한다는 것을 이해하는 것만으로도 다음 단계가 수행됩니다.
언급URL : https://stackoverflow.com/questions/26623141/mongoose-sort-the-aggregated-result
'programing' 카테고리의 다른 글
앱 내 구매가 "메타데이터 누락" 상태로 고착됨 (0) | 2023.07.04 |
---|---|
@SpringBoot 응용 프로그램에서 기호를 확인할 수 없음 - IntelliJDEA (0) | 2023.07.04 |
Thymeleaf: 현재 URL에 매개 변수 추가 (0) | 2023.07.04 |
태그 설명이 필요한 방법 (0) | 2023.07.04 |
html 링크를 통해 sms 본문 텍스트를 미리 채우는 방법 (0) | 2023.07.04 |