mongo資料庫使用小結

2022-02-23 19:51:51 字數 1670 閱讀 2968

db.userid5555.aggregate(,},},},,)

內嵌文件按某欄位排序,從索引5(索引從0開始)的資料3條

轉乙個別人總結的:

最近一直在用mongodb,有時候會需要用到統計,在網上查了一些資料,最適合用的就是用aggregate,以下介紹一下自己運用的心得。。

別人寫過的我就不過多描述了,大家一搜能搜尋到n多一樣的,我寫一下我的總結。

基礎知識

操作符介紹:

$project:包含、排除、重新命名和顯示字段

$match:查詢,需要同find()一樣的引數

$limit:限制結果數量

$skip:忽略結果的數量

$sort:按照給定的字段排序結果

$group:按照給定表示式組合結果

$unwind:分割嵌入陣列到自己頂層檔案

文件:mongodb 官方aggregate說明。

db.collection.aggregate([array]);

array可是是任何乙個或多個操作符。

group和match的用法,使用過sqlserver,group的用法很好理解,根據指定列進行分組統計,可以統計分組的數量,也能統計分組中的和或者平均值等。

group之前的match,是對源資料進行查詢,group之後的match是對group之後的資料進行篩選;

同理,sort,skip,limit也是同樣的原理;

1.1

2.2

3.3

4.4

5.5

以下是示例:

應用一:統計name的數量和總數;

db.collection.aggregate([

,total:}

應用二:統計status=1的name的數量;

db.collection.aggregate([

}, }}

應用三:統計name的數量,並且數量為小於2的;

db.collection.aggregate([

}, }}

應用四:統計stauts=1的name的數量,並且數量為1的;

db.collection.aggregate([

}, }},

} 多列group,根據name和status進行多列

db.collection.aggregate([

,count:}}

$project該操作符很簡單,

db.collection.aggregate([

} 結果是,只有_id,name,status三個欄位的表資料,相當於sql表示式 select _id,name,status from collection

$unwind

這個操作符可以將乙個陣列的文件拆分為多條文件,在特殊條件下有用,本人暫沒有進行過多的研究。

以上基本就可以實現大部分統計了,group前條件,group後條件,是重點。

MYSQL資料庫使用小結

由於專案的需要,新開發一套系統需要用到mysql資料庫.之前我沒有碰過mysql資料庫,經過一段時間的摸索和網上查詢資料 終於把專案做完.現在把有相關的資料總結一下,方便以後使用查詢.mysql版本的介紹 分為安裝版和免安裝版 個人認為 兩者的區別在於 安裝版在安裝時會幫你配置好,免安裝需要自己手工...

mongo資料庫備份還原

備份 命令介紹 mongodump h dbhost d dbname o dbdirectory d 需要備份的資料庫例項,例如 test o 備份的資料存放位置,例如 c data dump,當然該目錄需要提前建立,在備份完成後,系統自動在dump目錄下建立乙個test目錄,這個目錄裡面存放該資...

PHP操作mongo資料庫

conn new mongoclient mongodb localhost 27017 mongodb username password host port db conn chili 選擇資料庫 col db test 選擇集合 dbs conn listdbs 檢視所有的表 collecti...