I'm a PHP developer and managing big data stored with this language is not so easy.
Add data to the db is not a problem, but retrieving a summary and save it as csv is not to easy.
So this time I tried to use Python and it marvelous because:
- In a moment you can create the object containing the aggregate conditions;
- Saving the data as csv is easy.
#!/usr/bin/python
import pymongo
import csv
import collections
from pymongo import MongoClient
db = MongoClient().report_impresa
pipeline = [
{
"$group": {
"_id": "$CompanySummary.CreditRating.CreditLimit",
"count": {"$sum": 1},
"min_rating": {"$min": "$CompanySummary.CreditRating.CommonValue"},
"max_rating": {"$max": "$CompanySummary.CreditRating.CommonValue"},
}
},
{"$sort": {"_id": 1}}
]
descr = db.ggs.aggregate(pipeline)
values = {}
for att in descr:
chiave = att["_id"]
if chiave is None:
chiave = ""
if chiave == "":
values[""] = att
else:
values[int(chiave)] = att
with open('fido.csv', 'w') as csvfile:
writer = csv.DictWriter(
csvfile,
fieldnames=[
"_id",
"count",
"min_rating",
"max_rating"
]
)
writer.writeheader()
for k in sorted(values):
writer.writerow(values[k])
Top comments (0)