mongodb 分組查詢統計去掉重複的記錄

2021-08-31 10:38:19 字數 1519 閱讀 6822

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

mongodb版本號是,mongodb shell version: 2.4.4

操作環境,shell視窗 ,如下所示:

[mongo_user@mongodb_dbs ~]# mongo --port 30100mongodb shell version: 2.4.4connecting to: 127.0.0.1:30000/testmongos> mongos> use

posswitched to db posmongos>

// 這裡分組統計出來取分組欄位paymentorder的值_id、最大的objectid值max_id、分組統計數count

vargroup

=([         ,count: }},     }]

)

備份

/usr/local/mongodb/mongodb-linux

-x86_64

-2.4

.4/bin/mongoexport --port 30000

-d pos -c paymentinfo  -o /home/backup/mongodb_pos_paymentinfo_3.txt

這裡ds就是乙個大的結果集,直接用ds.result就可以獲取結果集裡面分組查詢出來的資料:

//下面開始啟用迴圈來遍歷,aggregate出來的result已經具備了陣列的特性,可以直接for迴圈處理

var ds = db.paymentinfo.aggregate(group, match);  for (var i = 0;i var child=ds.result[i];    var count=child.count;      //因為上面第二步的}};過濾無效,所以這裡加乙個count>1來過濾掉沒有重複的資料,只對有重複的進行資料處理操作

if(count>1));        //直接find後需要用toarray()來進行處理變成陣列這樣才可以遍歷

var psc=ps.toarray();        for(var j=0; jvar pchild=psc[j];            //將objectid進行遍歷,如果是最大的那條記錄保留,不是就刪除remove掉

if(oid.tostring()==pchild._id.tostring())else);            }        }    }    }

by the way:如果你copy我的指令碼,去shell下的mongos客戶端執行報錯,有可能是格式錯誤,你可以去掉所有的換行符號或者你自己手動輸入一遍,去執行,就不會報錯了。

給我老師的人工智慧教程打call!

mongodb 分組查詢統計去掉重複的記錄

mongodb版本號是,mongodb shell version 2.4.4 操作環境,shell視窗 如下所示 mongo user mongodb dbs mongo port 30100 mongodb shell version 2.4.4 connecting to 127.0.0.1 ...

LINQ分組查詢統計

var q from p in db.products group p by p.categoryid into g select new 語句描述 linq使用group by和count得到每個categoryid中產品的數量。說明 先按categoryid歸類,取出categoryid值和各個...

MongoDB多條件分組聚合查詢

需要統計某一日期下不同活動不同渠道的呼叫量 db.collectionname.aggregate activitycode channel total mongodb的聚合管道將mongodb文件在乙個管道處理完畢後將結果傳遞給下乙個管道處理 db.collection name.aggregat...