MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Erreur d'agrégation MongoDB :l'objet de spécification d'étape de pipeline doit contenir exactement un champ

MongoDB se plaint parce que vous avez une spécification d'étape de pipeline non reconnue "count": { "$sum": 1 } dans votre pipeline.

Votre pipeline d'origine lorsqu'il est formaté correctement

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

devrait avoir l'accumulateur agrégé $sum dans le $group pipeline comme :

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