日期:2014-05-16  浏览次数:20414 次

MongoDB中group() mapReduce() aggregate()之比较

对于SQL而言,如果从users表里查询每个team所有成员的number,查询语句如下:

?

[sql]?view plaincopy
  1. SELECT?team,?no?FROM?users?GROUP?BY?team?????????????????????????????(1)??

?

但是对于Mongodb而言,实现这样的功能,则比较复杂。

从mongodb2.2之后,有了三个function可以实现这个功能,他们按照产生的顺序,分别是group(), mapReduce()和aggregate().

他们之间的区别有哪些呢?参照stack overflow上讨论http://stackoverflow.com/questions/12337319/mongodb-aggregation-comparison-group-group-and-mapreduce整理如下:

?

1.?????db.collection.group().

定义为:

?