programing

MongoDB Aggregation 오류: 파이프라인 단계 규격 개체는 정확히 하나의 필드를 포함해야 합니다.

magicmemo 2023. 5. 1. 20:48
반응형

MongoDB Aggregation 오류: 파이프라인 단계 규격 개체는 정확히 하나의 필드를 포함해야 합니다.

저는 mongodb와 aggregation을 처음 시도해 봅니다.여기서, 저는 15분마다 그룹화된 트윗의 수를 얻으려고 합니다.mongo 콘솔에서 아래 쿼리를 실행하려고 하면 다음 오류가 발생합니다.

파이프라인 단계 규격 개체에는 정확히 하나의 필드가 포함되어야 합니다.

    db.hashtag.aggregate([
    { "$group": {
        "_id": {
            "year": { "$year": "$tweettime" },
            "dayOfYear": { "$dayOfYear": "$tweettime" },
            "interval": {
                "$subtract": [ 
                    { "$minute": "$tweettime" },
                    { "$mod": [{ "$minute": "$tweettime"}, 15] }
                ]
            }
        }},
        "count": { "$sum": 1 }
    }
])

SO에서 그 이유에 대한 좋은 설명을 찾을 수 없었습니다. 이 주제에 대한 당신의 생각과 제 질문에 오류가 있는 이유를 공유해 주십시오.

인식할 수 없는 파이프라인 단계 사양이 있어 MongoDB에서 불만을 제기하고 있습니다."count": { "$sum": 1 }당신의 파이프라인 안에.

올바른 형식의 원래 파이프라인

db.hashtag.aggregate([
    { 
        "$group": {
            "_id": {
                "year": { "$year": "$tweettime" },
                "dayOfYear": { "$dayOfYear": "$tweettime" },
                "interval": {
                    "$subtract": [ 
                        { "$minute": "$tweettime" },
                        { "$mod": [{ "$minute": "$tweettime"}, 15] }
                    ]
                }
            }
        },
        "count": { "$sum": 1 } /* unrecognised pipeline specification here */
    }
])

파이프라인 내에 다음과 같은 Aggregate Accumulator가 있어야 합니다.

    { 
        "$group": {
            "_id": {
                "year": { "$year": "$tweettime" },
                "dayOfYear": { "$dayOfYear": "$tweettime" },
                "interval": {
                    "$subtract": [ 
                        { "$minute": "$tweettime" },
                        { "$mod": [{ "$minute": "$tweettime"}, 15] }
                    ]
                }
            },
            "count": { "$sum": 1 }
        }           
    }
])

언급URL : https://stackoverflow.com/questions/42232375/mongodb-aggregation-error-pipeline-stage-specification-object-must-contain-exa

반응형