0

我有一些这样的数据:

[ 
 { date: '02.09.2013',
    start_at: '22:00',
    team1: 'Арсенал Саранди',
    team2: 'Архентинос Жуниорс',
    score1: '-',
    score2: '-',
    chemp: 'Аргентина. Инисиаль',
    _id: 52246c1f5fb4360000000001 },
  { date: '02.09.2013',
    start_at: '00:30',
    team1: 'Крузейро',
    team2: 'Васку да Гама',
    score1: '5',
    score2: '3',
    chemp: 'Бразилия. Серия А',
    _id: 52246c1f5fb4360000000002 },
  { date: '02.09.2013',
    start_at: '03:15',
    team1: 'Сан-Лоренсо',
    team2: 'Ривер Плейт',
    score1: '1',
    score2: '0',
    chemp: 'Аргентина. Инисиаль',
    _id: 52246c1f5fb4360000000003 },
  { date: '02.09.2013',
    start_at: '22:00',
    team1: 'Эшторил',
    team2: 'Академика',
    score1: '-',
    score2: '-',
    chemp: 'Португалия. Лига Сагреш',
    _id: 52246c205fb4360000000004 } 
 ]

我怎样才能得到它并按化学值分组?

更新: 最终解决方案是:

collection.aggregate({ $project : {
                 chemp: 1,
                 team1: 1,
                 team2: 1,
                 score1: 1,
                 score2: 2,
                 start_at: 1
               }
    }, { $group : { _id : { chemp : "$chemp" }, games: {$push: {team1: "$team1", team2: "$team2", score1: "$score1", score2: "$score2", start_at: "$start_at"}} } }, function(err, data){
        db.close();
      }
    )
4

1 回答 1

2

下面给出的查询将对 chemp 进行分组。

  db.collection_name.aggregate(                   
      { $group : {
                   _id : { chemp : "$chemp" }
                   total:{$sum:1}
                 }
      }
    )

有关更多详细信息,请参阅下面给出的链接:

http://docs.mongodb.org/manual/reference/method/db.collection.aggregate/#db.collection.aggregate

PS:你需要有 mongo 2.2 版本才能使用这个聚合框架。对于旧版本的 mongo,您可以使用 map/reduce。

于 2013-09-02T11:33:54.840 回答