@@ -235,15 +235,15 @@ db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
235235# select by_user, count(*) from mycol group by by_user
236236` ` `
237237
238- | $sum | 计算总和。 | db.mycol.aggregate([{$group : {_id : " $by_user " , num_tutorial : {$sum : " $likes " }}}]) |
238+ | ` $sum ` | 计算总和。 | db.mycol.aggregate([{$group : {_id : " $by_user " , num_tutorial : {$sum : " $likes " }}}]) |
239239| --------- | ---------------------------------------------- | ------------------------------------------------------------ |
240- | $avg | 计算平均值 | db.mycol.aggregate([{$group : {_id : " $by_user " , num_tutorial : {$avg : " $likes " }}}]) |
241- | $min | 获取集合中所有文档对应值得最小值。 | db.mycol.aggregate([{$group : {_id : " $by_user " , num_tutorial : {$min : " $likes " }}}]) |
240+ | ` $avg ` | 计算平均值 | db.mycol.aggregate([{$group : {_id : " $by_user " , num_tutorial : {$avg : " $likes " }}}]) |
241+ | ` $min ` | 获取集合中所有文档对应值得最小值。 | db.mycol.aggregate([{$group : {_id : " $by_user " , num_tutorial : {$min : " $likes " }}}]) |
242242| $max | 获取集合中所有文档对应值得最大值。 | db.mycol.aggregate([{$group : {_id : " $by_user " , num_tutorial : {$max : " $likes " }}}]) |
243- | $push | 在结果文档中插入值到一个数组中。 | db.mycol.aggregate([{$group : {_id : " $by_user " , url : {$push : " $url " }}}]) |
243+ | ` $push ` | 在结果文档中插入值到一个数组中。 | db.mycol.aggregate([{$group : {_id : " $by_user " , url : {$push : " $url " }}}]) |
244244| $addToSet | 在结果文档中插入值到一个数组中,但不创建副本。 | db.mycol.aggregate([{$group : {_id : " $by_user " , url : {$addToSet : " $url " }}}]) |
245245| $first | 根据资源文档的排序获取第一个文档数据。 | db.mycol.aggregate([{$group : {_id : " $by_user " , first_url : {$first : " $url " }}}]) |
246- | $last | 根据资源文档的排序获取最后一个文档数据 | db.mycol.aggregate([{$group : {_id : " $by_user " , last_url : {$last : " $url " }}}]) |
246+ | ` $last ` | 根据资源文档的排序获取最后一个文档数据 | db.mycol.aggregate([{$group : {_id : " $by_user " , last_url : {$last : " $url " }}}]) |
247247
248248 聚合框架中常用的几个操作:
249249
@@ -264,6 +264,50 @@ db.articles.aggregate( [
264264# $match用于获取分数大于70小于或等于90记录,然后将符合条件的记录送到下一阶段$group管道操作符进行处理。
265265` ` `
266266
267+ ** 聚合后排序操作**
268+
269+ ` ` ` bash
270+ db.getCollection(' position' ).aggregate({
271+ " $group " : {
272+ " _id" : " $create_time " ,
273+ " count" : {
274+ " $sum " : 1
275+ }
276+ }
277+
278+ },{
279+ " $sort " : {
280+ " _id" : -1
281+ }
282+ })
283+ ` ` `
284+
285+ ** 起别名**
286+
287+ ` ` ` bash
288+ db.getCollection(' position' ).aggregate({
289+ " $group " : {
290+ " _id" : " $create_time " ,
291+ " count" : {
292+ " $sum " : 1
293+ }
294+ }
295+
296+ },{
297+ " $sort " : {
298+ " _id" : -1
299+ }
300+ },{
301+ " $project " : {
302+ " date" : " $_id " ,
303+ " count" : 1,
304+ " _id" : 0
305+ }
306+ })
307+ ` ` `
308+
309+
310+
267311
268312
269313# ## 原子性和事务处理
0 commit comments