diff --git a/readme.md b/readme.md index 45d3df9..3869dfd 100644 --- a/readme.md +++ b/readme.md @@ -39,6 +39,10 @@ Set value db.cards.aggregate([{ $group: { _id: { set: "$set" }, value: { $sum: { $multiply: ["$prices.eur", "$serra_count"] } }, count: { $sum: 1 } } }]) +Color distribution + + db.cards.aggregate([{ $group: { _id: { color: "$colors" }, count: { $sum: 1 } } }]) + # MongoDB Operations diff --git a/serra.go b/serra.go index 9a65bcc..785fd7e 100644 --- a/serra.go +++ b/serra.go @@ -17,6 +17,7 @@ Usage: serra set serra sets serra update + serra stats Options: -h --help Show this screen. @@ -35,6 +36,8 @@ Options: serra.ShowSet(args[""].(string)) } else if args["update"].(bool) { serra.Update() + } else if args["stats"].(bool) { + serra.Stats() } } diff --git a/src/serra/root.go b/src/serra/root.go index bbd988a..feb176a 100644 --- a/src/serra/root.go +++ b/src/serra/root.go @@ -145,3 +145,24 @@ func Update() { storage_disconnect(client) } + +func Stats() { + LogMessage(fmt.Sprintf("Serra %v\n", version), "green") + + LogMessage(fmt.Sprintf("Color distribution in Collection"), "green") + client := storage_connect() + coll := &Collection{client.Database("serra").Collection("cards")} + + groupStage := bson.D{ + {"$group", bson.D{ + {"_id", "$coloridentity"}, + {"count", bson.D{{"$sum", 1}}}, + }}} + + sets, _ := coll.storage_aggregate(groupStage) + for _, set := range sets { + + // TODO fix primitiveA Problem with loop and reflect + fmt.Printf("* %s %d\n", set["_id"], set["count"]) + } +}