共計 1103 個字符,預計需要花費 3 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關 MongoDB 中管道有什么用,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
MongoDB 管道的介紹及操作符實例
一 介紹
管道在 Unix 和 Linux 中一般用于將當前命令的輸出結果作為下一個命令的參數。
MongoDB 的聚合管道將 MongoDB 文檔在一個管道處理完畢后將結果傳遞給下一個管道處理。管道操作是可以重復的。
表達式:處理輸入文檔并輸出。表達式是無狀態的,只能用于計算當前聚合管道的文檔,不能處理其它的文檔。
這里我們介紹一下聚合框架中常用的幾個操作:
$project:修改輸入文檔的結構。可以用來重命名、增加或刪除域,也可以用于創建計算結果以及嵌套文檔。
$match:用于過濾數據,只輸出符合條件的文檔。$match 使用 MongoDB 的標準查詢操作。
$limit:用來限制 MongoDB 聚合管道返回的文檔數。
$skip:在聚合管道中跳過指定數量的文檔,并返回余下的文檔。
$unwind:將文檔中的某一個數組類型字段拆分成多條,每條包含數組中的一個值。
$group:將集合中的文檔分組,可用于統計結果。
$sort:將輸入文檔排序后輸出。
$geoNear:輸出接近某一地理位置的有序文檔。
二 管道操作符實例
1、$project 實例
db.article.aggregate(
{ $project : {
title : 1 ,
author : 1 ,
}}
);
這樣的話結果中就只還有_id,tilte 和 author 三個字段了,默認情況下_id 字段是被包含的,如果要想不包含_id 話可以這樣:
db.article.aggregate(
{ $project : {
_id : 0 ,
title : 1 ,
author : 1
}});
2.$match 實例
db.articles.aggregate( [ { $match : { score : { $gt : 70, $lte : 90 } } },
{ $group: { _id: null, count: { $sum: 1 } } }
] );
$match 用于獲取分數大于 70 小于或等于 90 記錄,然后將符合條件的記錄送到下一階段 $group 管道操作符進行處理。
3.$skip 實例
db.article.aggregate( { $skip : 5 });
經過 $skip 管道操作符處理后,前五個文檔被 過濾 掉。
關于“MongoDB 中管道有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。