KennyPowers
KennyPowers

Reputation: 5015

Mongodb Aggregation Framework and Python

I have the next collection:

{"status": "new", "date": {"$date": 1334841845571}, "_id": {"$oid": "4f901223e4b0c2899fb22da0"}, "description": "description 1", "number": "01"}
{"status": "new", "date": {"$date": 1334841845571}, "_id": {"$oid": "4f90126fe4b0c2899fb22da1"}, "description": "description 1", "number": "02"}
{"status": "new", "date": {"$date": 1334841845571}, "_id": {"$oid": "4f901276e4b0c2899fb22da2"}, "description": "description 1", "number": "03"}
{"status": "blocked", "date": {"$date": 1332163445571}, "_id": {"$oid": "4f901286e4b0c2899fb22da3"}, "description": "description 1", "number": "04"}
{"status": "blocked", "date": {"$date": 1332163445571}, "_id": {"$oid": "4f90128ee4b0c2899fb22da4"}, "description": "description 1", "number": "05"}
{"status": "blocked", "date": {"$date": 1332163445571}, "_id": {"$oid": "4f901292e4b0c2899fb22da5"}, "description": "description 1", "number": "06"}

I'm trying to group by 'status' column:

cursor = db.command('aggregate', table, pipeline=[
            {'$project': {u'date': 1, u'status': 1, u'number': 1, u'description': 1}}
            {'$group': {'_id': u'$status'}}])

But I get this:

"ok"
"result"

Why?

Upvotes: 0

Views: 473

Answers (1)

Derick
Derick

Reputation: 36774

You will need to add those extra fields to the "$group" command in your pipeline, but you need to specify how the group command should aggregate them as it can't just put them all in one array. Please provide what you expect as output as well.

Upvotes: 1

Related Questions