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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

MongoDB 的高级查询 aggregate 聚合管道

發布時間:2024/7/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB 的高级查询 aggregate 聚合管道 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、MongoDB 聚合管道(Aggregation Pipeline)

使用聚合管道可以對集合中的文檔進行變換和組合。

實際項目:表關聯查詢、數據的統計。

MongoDB 中使用 db.COLLECTION_NAME.aggregate([{<stage>},...]) 方法 來構建和使用聚合管道。
先看下官網給的實例,感受一下聚合管道的用法。

二、MongoDB Aggregation 管道操作符與表達式


SQL 和 NOSQL 對比:

管道表達式: 管道操作符作為“鍵”,所對應的“值”叫做管道表達式。

例如{KaTeX parse error: Expected 'EOF', got '}' at position 19: …ch:{status:"A"}}?,match 稱為管道操作符,而 status:"A"稱為管道表達式, 是管道操作符的操作數(Operand)。

每個管道表達式是一個文檔結構,它是由字段名、字段值、和一些表達式操作符組成的。

三、 數據模擬

db.order.insert({"order_id":"1","uid":10,"trade_no":"111","all_price":100,"all_num":2}) db.order.insert({"order_id":"2","uid":7,"trade_no":"222","all_price":90,"all_num":2}) db.order.insert({"order_id":"3","uid":9,"trade_no":"333","all_price":20,"all_num":6}) db.order_item.insert({"order_id":"1","title":"商品鼠標 1","price":50,num:1}) db.order_item.insert({"order_id":"1","title":"商品鍵盤 2","price":50,num:1}) db.order_item.insert({"order_id":"1","title":"商品鍵盤 3","price":0,num:1}) db.order_item.insert({"order_id":"2","title":"牛奶","price":50,num:1}) db.order_item.insert({"order_id":"2","title":"酸奶","price":40,num:1}) db.order_item.insert({"order_id":"3","title":"礦泉水","price":2,num:5}) db.order_item.insert({"order_id":"3","title":"毛巾","price":10,num:1})

四、 $project

修改文檔的結構,可以用來重命名、增加或刪除文檔中的字段。

要求查找 order 只返回文檔中order_id, trade_no 和 all_price 字段

五、 $match 作用用于過濾文檔。

用法類似于 find() 方法中的參數。

六、 $group

將集合中的文檔進行分組,可用于統計結果。

統計每個訂單的訂單數量,按照訂單號分組



七、 $sort

將集合中的文檔進行排序。

八、 $limit

九、 $skip

十、 $lookup 表關聯

db.order.aggregate([{$lookup: {from: "order_item",localField: "order_id",foreignField: "order_id",as: "items"} }])

查詢結果:

// 1 {"_id": ObjectId("606ecfbdbb390000fa004964"),"order_id": "1","uid": 10,"trade_no": "111","all_price": 100,"all_num": 2,"items": [{"_id": ObjectId("606ecfbdbb390000fa004967"),"order_id": "1","title": "商品鼠標 1","price": 50,"num": 1},{"_id": ObjectId("606ecfbdbb390000fa004968"),"order_id": "1","title": "商品鍵盤 2","price": 50,"num": 1},{"_id": ObjectId("606ecfbdbb390000fa004969"),"order_id": "1","title": "商品鍵盤 3","price": 0,"num": 1}] }// 2 {"_id": ObjectId("606ecfbdbb390000fa004965"),"order_id": "2","uid": 7,"trade_no": "222","all_price": 90,"all_num": 2,"items": [{"_id": ObjectId("606ecfbdbb390000fa00496a"),"order_id": "2","title": "牛奶","price": 50,"num": 1},{"_id": ObjectId("606ecfbdbb390000fa00496b"),"order_id": "2","title": "酸奶","price": 40,"num": 1}] }// 3 {"_id": ObjectId("606ecfbdbb390000fa004966"),"order_id": "3","uid": 9,"trade_no": "333","all_price": 20,"all_num": 6,"items": [{"_id": ObjectId("606ecfbdbb390000fa00496c"),"order_id": "3","title": "礦泉水","price": 2,"num": 5},{"_id": ObjectId("606ecfbdbb390000fa00496d"),"order_id": "3","title": "毛巾","price": 10,"num": 1}] } db.order.aggregate([{$lookup: {from: "order_item",localField: "order_id",foreignField: "order_id",as: "items"} }, {$project: {trade_no: 1,all_price: 1,items: 1} }, {$match: {"all_price": {$gte: 90}} }, {$sort: {"all_price": - 1} }, ])

查詢結果:

// 1 {"_id": ObjectId("606ecfbdbb390000fa004964"),"trade_no": "111","all_price": 100,"items": [{"_id": ObjectId("606ecfbdbb390000fa004967"),"order_id": "1","title": "商品鼠標 1","price": 50,"num": 1},{"_id": ObjectId("606ecfbdbb390000fa004968"),"order_id": "1","title": "商品鍵盤 2","price": 50,"num": 1},{"_id": ObjectId("606ecfbdbb390000fa004969"),"order_id": "1","title": "商品鍵盤 3","price": 0,"num": 1}] }// 2 {"_id": ObjectId("606ecfbdbb390000fa004965"),"trade_no": "222","all_price": 90,"items": [{"_id": ObjectId("606ecfbdbb390000fa00496a"),"order_id": "2","title": "牛奶","price": 50,"num": 1},{"_id": ObjectId("606ecfbdbb390000fa00496b"),"order_id": "2","title": "酸奶","price": 40,"num": 1}] }

總結

以上是生活随笔為你收集整理的MongoDB 的高级查询 aggregate 聚合管道的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 中文字幕一区二区久久人妻网站 | 国产精品久久久久久久蜜臀 | 国产精品网站在线观看 | 日日狠狠久久偷偷四色综合免费 | www,超碰 | 黑人av| 日本熟妇色xxxxx日本免费看 | 怡红院av在线| 国产高清在线观看 | 丰满人妻一区二区三区四区53 | 亚洲三级视频在线观看 | 超碰国产在线观看 | 99999精品视频 | 国产白袜脚足j棉袜在线观看 | 亚洲v国产| 欧美色就是色 | 免费看黄网站在线观看 | 无套中出丰满人妻无码 | 18精品爽国产白嫩精品 | 久久精品国产欧美亚洲人人爽 | 一区二区日本 | 日韩伦理一区二区 | 波多野结衣高清电影 | 亚洲国产一二 | 91精品国产一区二区 | 精品视频三区 | 免费人妻精品一区二区三区 | 人人看人人草 | 中文字幕无码乱码人妻日韩精品 | 久久综合九色综合欧美狠狠 | 黄色大片免费观看视频 | 华人永久免费视频 | 超碰97在线看 | 欧美黄色a | 少妇网站在线观看 | 亚洲国产婷婷香蕉久久久久久99 | www.youjizz.com久久| 熟妇毛片 | 真人一毛片 | 天堂免费av | 中文字幕乱码人妻无码久久 | 伊人网综合视频 | 成人午夜在线播放 | 久久亚洲精华国产精华液 | 爽天天天天天天天 | 亚洲三级电影网站 | 国产精久久 | 丰满肉嫩西川结衣av | 欧美日韩一区二区三区四区五区 | 亚洲三区在线播放 | 琪琪成人 | 午夜在线影院 | 欧美精品日韩在线 | 特种兵之深入敌后高清全集免费观看 | 色综合久久精品亚洲国产 | 嫩草视频在线看 | 88av视频 | 欧美亚洲激情 | 久久久久久9 | 中日韩精品视频在线观看 | 黑人精品欧美一区二区蜜桃 | 麻豆videos| 韩国三级中文字幕 | 亚洲精品久久久久久国 | 黄色一区二区视频 | 春闺艳妇(h)高h产乳 | 成人av日韩 | 97热久久| 另类av在线 | www.亚洲欧美 | 色综网| 夜夜撸影院 | av免费观 | 天天狠天天插天天透 | 日本老年老熟无码 | 青青视频一区二区 | 牛牛影视一区二区 | 四虎一国产精品一区二区影院 | 久久福利影院 | 日日草视频 | 一级全黄裸体免费观看视频 | 欧美自拍区 | 欧美日韩黄色一区二区 | 69久久久久 | 欧美淫 | 日韩一区二区高清视频 | 国产午夜在线一区二区三区 | 污污网址在线观看 | 国产精品久久777777 | 日本黄色激情视频 | 啪啪av网 | 国产精品情侣自拍 | 五月天欧美 | 亚洲精品乱码久久久久久自慰 | 性久久久久久久久久久久 | 人妻少妇精品一区二区 | 欧美 日韩 国产 亚洲 色 | 九九精品在线观看视频 | 最新免费黄色网址 |