반응형
$프로젝트가 있는 Mongo $그룹
키워드 수를 같이 구하려고 합니다.parentId
,categioryId
그리고.llcId
나의 db는
{
"_id" : ObjectId("5673f5b1e4b0822f6f0a5b89"),
"keyword" : "electronic content management system",
"llcId" : "CL1K9B",
"categoryId" : "CL1K8V",
"parentId" : "CL1K8V",
}
나는 노력했다.$project
와 함께$group
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
그리고 그것은 나에게 다음과 같은 결과를 줍니다.
{ "_id" : "CL1KJQ", "total" : 17 }
{ "_id" : "CL1KKW", "total" : 30 }
하지만 결과적으로 실제 데이터도 필요합니다. llcId
,categoryId
,keyword
,total
표시하려고 했습니다.cetgoryId
사용하여 키워드 지정합니다.$project
그러나 표시되는 것은_id
총계입니다.내가 무엇을 놓쳤습니까?
다음 정보를keyword
문서를 다음 기준으로 그룹화해야 하는 카운트keyword
필드에서 누적 연산자를 사용하여 문서 카운트를 가져옵니다.다른 필드 값의 경우, 키워드 값을 기준으로 모든 문서를 그룹화하므로, 다른 필드를 가져오려면 각 그룹에 대해 첫 번째 문서의 값을 반환하는 연산자를 사용하는 것이 최선입니다.그렇지 않으면 연산자를 사용하여 각 그룹의 필드 값 배열을 반환해야 할 수 있습니다.
var pipeline = [
{
"$group": {
"_id": "$keyword",
"total": { "$sum": 1 },
"llcId": { "$first": "$llcId"},
"categoryId": { "$first": "$categoryId"},
"parentId": { "$first": "$parentId"}
}
}
];
db.keyword.aggregate(pipeline)
그룹화 기준llcId
그래서 그것은 하나 이상을 줄 것입니다.categoryId
당llcId
.네가 원한다면categoryId
결과적으로, 당신은 그것을 당신의 그룹 쿼리에 써야 합니다.예:
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
categoryId:{$max:"$categoryId"}
}
},
{
$project: {
categoryId: 1, total: 1
}
}])
언급URL : https://stackoverflow.com/questions/35176641/mongo-group-with-project
반응형
'programing' 카테고리의 다른 글
Azure 저장 Blob 용기를 청소하는 방법은 무엇입니까? (0) | 2023.05.02 |
---|---|
새 GUI를 만들 때 WPF가 Windows Forms보다 선호됩니까? (0) | 2023.05.02 |
게시물 가져오기GIS 버전 (0) | 2023.05.02 |
SQL Server에서 문자열에서 알파벳이 아닌 모든 문자를 제거하는 방법은 무엇입니까? (0) | 2023.05.02 |
전달된 인수가 Bash의 파일 또는 디렉토리인지 확인합니다. (0) | 2023.05.02 |