Skip to content

Commit 073548d

Browse files
committed
'增加mongodb中聚合常用操作'
1 parent 5198f95 commit 073548d

File tree

1 file changed

+49
-5
lines changed

1 file changed

+49
-5
lines changed

MongoDb/MongoDB.md

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)