MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Aggregationsfehler:Das Spezifikationsobjekt der Pipeline-Stufe muss genau ein Feld enthalten

MongoDB beschwert sich, weil Sie eine nicht erkannte Pipeline-Stufenspezifikation "count": { "$sum": 1 } haben in Ihrer Pipeline.

Ihre ursprüngliche Pipeline, wenn sie richtig formatiert ist

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 */
    }
])

sollte den aggregierten Akkumulator $sum innerhalb der $group Pipeline als:

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