반응형
mongodb - 검색 후 집약하는 방법
아래 스키마의 문서를 포함하는 컬렉션이 있습니다.성별이 포함된 모든 문서를 필터링/검색하여 브레인코어의 합계를 집계하고 싶습니다.아래 문구를 시도해보니 잘못된 파이프라인 오류가 나타납니다.
db['!all'].aggregate({ $and: [ {'GENDER' : 'F'} , {'DOB' : { $gte : 19400801, $lte : 20131231 }} ] }, { $group : { _id : "$GENDER", totalscore : { $sum : "$BRAINSCORE" } } } )
스키마:
{
"_id" : ObjectId("53f63fc8f2b643f6ebb8a1a9"),
"DOB" : 19690112,
"GENDER" : "F",
"BRAINSCORE" : 65
},
{
"_id" : ObjectId("53f63fc8f2b643f6ebb8a1a2"),
"DOB" : 19950116,
"GENDER" : "F",
"BRAINSCORE" : 44
},
{
"_id" : ObjectId("53f63fc8f2b643f6ebb8a902"),
"DOB" : 19430216,
"GENDER" : "M",
"BRAINSCORE" : 71
}
$match를 사용해야 합니다.
db['!all'].aggregate([
{$match:
{'GENDER': 'F',
'DOB':
{ $gte: 19400801,
$lte: 20131231 } } },
{$group:
{_id: "$GENDER",
totalscore:{ $sum: "$BRAINSCORE"}}}
])
출력:
{ "_id" : "F", "totalscore" : 109 }
작업 쿼리 예시:
db.getCollection('NOTIF_EVENT_RESULT').aggregate([
{$match:
{'userId': {'$in' : ['user-900', 'user-1546']},
'criteria.operator': 'greater than', 'criteria.thresold' : '90', 'category' : 'capacity'}
},
{"$group" : {_id : {userId:"$userId"}, "count" : { "$sum" : 1} } }
])
DOB 번호를 날짜로 변환하여 비교해야 하는 경우의 답변은 다음과 같습니다.그렇지 않은 경우 1970 등의 숫자 또는 날짜는 $gte에서 $19400801로 잘못 표시됩니다(시도 가능).
db['!all'].aggregate([
{
$addFields: {
"_temp_DOB": {
$dateFromString: {
dateString: {$toString: {$toLong: "$DOB"}},
format: "%Y%m%d"
}
}
}
},
{
$match: {
'GENDER': 'F',
'_temp_DOB': { $gte: new Date("1940-08-01"),
$lte: new Date("2013-12-31") }
}
},
{
$group: {
_id: "$GENDER",
totalscore: { $sum: "$BRAINSCORE" }
}
}
])
출력:
{ "_id" : "F", "totalscore" : 109 }
엔리케의 대답 외에
사용자 ID(mongoose 오브젝트)를 사용하여 집약하는 경우ID) 쿼리 ID(문자열 유형)를 mongoose 객체에 캐스트해야 합니다.아이디:
const userId = mongoose.Types.ObjectId(user_id).
또 다른,$match
빈 어레이가 반환됩니다.
언급URL : https://stackoverflow.com/questions/25436630/mongodb-how-to-find-and-then-aggregate
반응형
'sourcetip' 카테고리의 다른 글
JSON에 목록 직렬화 (0) | 2023.03.29 |
---|---|
Wordpress 3에서 커스텀 투고 유형에 커스텀 필드를 추가하려면 어떻게 해야 하나요? (0) | 2023.03.29 |
Woocommerce로 제품 자동 Import (0) | 2023.03.29 |
json 문자열을 python 개체로 변환 (0) | 2023.03.29 |
MongoDB 쉘 출력을 파일로 '예쁘게' 인쇄할 수 있는 방법이 있습니까? (0) | 2023.03.29 |