Get the App
SLTechnology News&Howtos  ›  Database  › 

Mongo aggregate query

Shulou Source: shulou.com Published: 2022-06-01 10:00:19 10月29日 Update

* not indexed * *

> var startTime = new Date ()

> db.temMinlog.find ({"id": 0}) .count ()

1215

> (new Date () .getTime ()-startTime.getTime ()) / 1000

194.811s

* indexed * *

> db.temMinlog.ensureIndex ({"_ id": 1, "id": 1})

{

"createdCollectionAutomatically": false

"numIndexesBefore": 1

"numIndexesAfter": 2

"ok": 1

}

* query after indexing * *

> var startTime = new Date ()

> db.temMinlog.find ({"id": 0}) .count ()

1215

> (new Date () .getTime ()-startTime.getTime ()) / 1000

227.247s

Time range retrieval

Db.temMinlog.find ({"_ id": {$gte:1498703926535,$lte:1498704749897}, "id": 0}) .explain ("executionStats")

Result "executionStats": {

"executionSuccess": true

"nReturned": 52

"executionTimeMillis": 9506

"totalKeysExamined": 518000

"totalDocsExamined": 52

"executionStages": {

"stage": "FETCH"

"nReturned": 52

"executionTimeMillisEstimate": 2175

"works": 518001

"advanced": 52

"needTime": 517947

"needYield": 0

"saveState": 8151

"restoreState": 8151

"isEOF": 1

"invalidates": 0

"docsExamined": 52

"alreadyHasObj": 0

"inputStage": {

"stage": "IXSCAN"

"nReturned": 52

"executionTimeMillisEstimate": 2145

Fuzzy query

Db.temMinlog.find ({"_ id": {$gte:1498703926535,$lte:1498704749897}, "id": / 0 /}) .explain ("executionStats")

Result "executionStats": {

"executionSuccess": true

"nReturned": 1

"executionTimeMillis": 9893

"totalKeysExamined": 518001

"totalDocsExamined": 1

"executionStages": {

"stage": "FETCH"

"nReturned": 1

"executionTimeMillisEstimate": 2237

"works": 518002

"advanced": 1

"needTime": 517999

"needYield": 0

"saveState": 8151

"restoreState": 8151

"isEOF": 1

"invalidates": 0

"docsExamined": 1

"alreadyHasObj": 0

"inputStage": {

"stage": "IXSCAN"

"filter": {

"id": {

"$regex": "0"

}

}

"nReturned": 1

"executionTimeMillisEstimate": 2185

Fuzzy count ()

> var startTime = new Date ()

> db.temMinlog.find ({"_ id": {$gte:1498703926535,$lte:1498704749897}, "id": {$in: [1meme 2jue 3]}}) .count ()

one hundred and fifty six

> (new Date () .getTime ()-startTime.getTime ()) / 1000

11.232s

* group by statistics * *

Db.temMinlog.aggregate ([{$group: {_ id: "$id", num_tutorial: {$sum:1}}])

Db.temMinlog.aggregate ([{$group: {_ id: "$id", max_v0: {$max: "$v0"}, min_v1: {$min: "$v1"}, count: {$sum:1}}], {allowDiskUse: true})

Db.temMinlog.aggregate ([{$group: {_ id: "$id", max_v0: {$max: "$v0"}, min_v1: {$min: "$v1"}, avg_v2: {$avg: "$v2"}, count: {$sum:1}}], {allowDiskUse: true})

Db.temMinlog.aggregate ([{$match: {_ id: {$gte:1498703926535,$lte:1498704749897}}, {$group: {_ id: "$id", max_v0: {$max: "$v0"}, min_v1: {$min: "$v1"}, avg_v2: {$avg: "$v2"}, sum_v2: {$sum: "$v2"}, count: {$sum:1}}], {allowDiskUse: true})

Results: 12.194s

Db.temMinlog.aggregate ([{$match: {_ id: {$gte:1498703926535,$lte:1498704749897}}, {$limit:5}, {$group: {_ id: "$id", max_v0: {$max: "$v0"}, min_v1: {$min: "$v1"}, avg_v2: {$avg: "$v2"}, sum_v2: {$sum: "$v2"}, count: {$sum:1}}, {$sort: {_ id:-1}}], {allowDiskUse: true})

$match: matching criteria, optional

$limit: number of result entries, optional

$group: aggregation rules

$sort: sort the query results, and-1 indicates descending order

Db.temMinlog.aggregate ([{$match: {_ id: {$gte:1498703926535,$lte:1498704749897}}, {$group: {_ id: "$id", max_v0: {$max: "$v0"}, min_v1: {$min: "$v1"}, avg_v2: {$avg: "$v2"}, sum_v2: {$sum: "$v2"}, count: {$sum:1}}, {$limit:5}, {$sort: {_ id:-1}}])

Results: 21.048s

Tags: Results query Gasso time condition range rules sort search Statistics Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Redmi Docker MariaDB Apple Shulou Tech Info