最近一直在用mongodb,有時候會需要用到統計,在網上查了一些資料,最適合用的就是用aggregate,以下介紹一下自己運用的心得。
pro
ject
:包含、
排除、重
命名和顯
示欄位 pro
ject
:包含、
排除、重
命名和顯
示字
段match:查詢,需要同find()一樣的引數 li
mit:
限制結果
數量l im
it:限
制結果數
量skip:忽略結果的數量 so
rt:按
照給定的
字段排序
結果s or
t:按照
給定的字
段排序結
果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([
2.2 3.3 4.4 5.5 以下是示例: 應用一:統計name的數量和總數; db.collection.aggregate([ ,total:}
]);
應用二:統計status=1的name的數量;
db.collection.aggregate([
},
}, }}
]);
應用三:統計name的數量,並且數量為小於2的;
db.collection.aggregate([
} ]);
結果是,只有_id,name,status三個欄位的表資料,相當於sql表示式 select _id,name,status from collection
project:} ]); 結果是,只有_id,name,status三個欄位的表資料,相當於sql表示式 select _id,name,status from collection
unwind
這個操作符可以將乙個陣列的文件拆分為多條文件,在特殊條件下有用,本人暫沒有進行過多的研究。
以上基本就可以實現大部分統計了,group前條件,group後條件,是重點。
mongdb基本操作
參考 新增乙個 useradminanydatabase 使用者,這是乙個能夠管理所有使用者的的使用者,類似於超級管理員吧 use admin 進入admin表 db.createuser 檢視使用者是否建立成功 show users 輸出以下內容表示新增成功 切換到要新增使用者的資料庫中 use ...
mongdb之集合基本操作
use coltest 建立資料庫若該資料庫不存在,若該資料庫存在,則使用該資料庫 switched to db coltest show collections 展示該資料庫下所有的集合 db.createcollection test 建立名為test的集合 show collections t...
mongdb資料庫基本操作
插入一條db物件 public static void adddbobject dbcollection collection,basicdbobject object 根據id查詢dbobject public static dbobject getdbobjectbyid string valu...