import pymongo from bson.son import SON import datetime DBHOST = '172.16.2.15' DBNAME = 'iot' DBCOLL = 'iot' FILENAME = 'measurementData.xls' client = pymongo.MongoClient(DBHOST) db = client[DBNAME] coll = db[DBCOLL] startDate = datetime.datetime(2015, 8, 13) cursor = coll.aggregate( [ {"$match":{"metadata.device":"MeterbusHub", "metadata.name": {"$in": ["light", "laundry", "dishwasher"]}, "metadata.day": {"$gte": startDate}}}, {"$sort":SON([("metadata.name",1),("metadata.day",1), ("metadata.seconds",1)])}, {"$group":{"_id":{"device":"$metadata.name","day":"$metadata.day"}, "first":{"$first":"$data.energy"},"last":{"$last":"$data.energy"}}}, {"$sort":{"_id":1}}, {"$project": {"energy":{"$subtract":["$last","$first"]}}} ], useCursor=True ) for c in cursor: print(c)