日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB 去重(distinct)查询后求总数(count)

發布時間:2023/12/1 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB 去重(distinct)查询后求总数(count) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在使用MonoDB 做報表匯總經常的有去重統計總數的需求,在此總結一下實現方式:

1, 直接使用distinct 語句查詢, 這種查詢會將所有查詢出來的數據返回給用戶, 然后對查詢出來的結果集求總數(耗內存,耗時一些)

var len = db.student.distinct("name",{"age" : 18}).length; print(len)

注,使用這種方法查詢時,查詢的結果集大于16M 時會查詢失敗,失敗信息如下:
{“message” : “distinct failed: MongoError: distinct too big, 16mb cap”,”stack” : “script:1:20”}

2, 使用聚合函數,多次分組統計結果,最終將聚合的結果數返回給用戶

db.student.aggregate([{$match:{"age" : 18}},{$project:{"name":true}},{$group:{_id:"$name"}},{$group:{_id:null,count:{$sum:1}}} ])

注,這種查詢數據量大時就不會出現如上查詢失敗的情況,而且這種查詢不管是內存消耗還是時間消耗都優于上面一種查詢.

原文參見個人博客:http://www.xuexiyuan.cn/article/detail/148.html

總結

以上是生活随笔為你收集整理的MongoDB 去重(distinct)查询后求总数(count)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。