Database
[{"place":"land","animal":"Tiger","name":"xxx"},{"place":"land","animal":"Lion","name":"yyy"}]
Query
db.collection.aggregate([{"$group":{"_id":"$place","animals":{"$push":{k:"$animal",v:"$name"}}}},{$project:{_id:0,place:"$_id",animals:{"$arrayToObject":"$animals"}}}])