溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MongoDB中管道有什么用

發(fā)布時間:2021-08-07 10:36:58 來源:億速云 閱讀:163 作者:小新 欄目:MongoDB數(shù)據(jù)庫

這篇文章將為大家詳細(xì)講解有關(guān)MongoDB中管道有什么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

MongoDB 管道的介紹及操作符實例

一 介紹

管道在Unix和Linux中一般用于將當(dāng)前命令的輸出結(jié)果作為下一個命令的參數(shù)。
MongoDB的聚合管道將MongoDB文檔在一個管道處理完畢后將結(jié)果傳遞給下一個管道處理。管道操作是可以重復(fù)的。

表達式:處理輸入文檔并輸出。表達式是無狀態(tài)的,只能用于計算當(dāng)前聚合管道的文檔,不能處理其它的文檔。

這里我們介紹一下聚合框架中常用的幾個操作:

  1. $project:修改輸入文檔的結(jié)構(gòu)??梢杂脕碇孛?、增加或刪除域,也可以用于創(chuàng)建計算結(jié)果以及嵌套文檔。

  2. $match:用于過濾數(shù)據(jù),只輸出符合條件的文檔。$match使用MongoDB的標(biāo)準(zhǔn)查詢操作。

  3. $limit:用來限制MongoDB聚合管道返回的文檔數(shù)。

  4. $skip:在聚合管道中跳過指定數(shù)量的文檔,并返回余下的文檔。

  5. $unwind:將文檔中的某一個數(shù)組類型字段拆分成多條,每條包含數(shù)組中的一個值。

  6. $group:將集合中的文檔分組,可用于統(tǒng)計結(jié)果。

  7. $sort:將輸入文檔排序后輸出。

  8. $geoNear:輸出接近某一地理位置的有序文檔。 

二 管道操作符實例

1、$project實例

db.article.aggregate(
  { $project : {
    title : 1 ,
    author : 1 ,
  }}
 );

這樣的話結(jié)果中就只還有_id,tilte和author三個字段了,默認(rèn)情況下_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用于獲取分?jǐn)?shù)大于70小于或等于90記錄,然后將符合條件的記錄送到下一階段$group管道操作符進行處理。

3.$skip實例

db.article.aggregate(
  { $skip : 5 });

經(jīng)過$skip管道操作符處理后,前五個文檔被"過濾"掉。

關(guān)于“MongoDB中管道有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI