亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mongodb如何對文檔內數(shù)組進行過濾的方法步驟

 更新時間:2018年10月10日 09:52:00   作者:ZevFang  
這篇文章主要介紹了mongodb如何對文檔內數(shù)組進行過濾的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文介紹了mongodb如何對文檔內數(shù)組進行過濾的方法步驟,分享給大家,具體如下:


mongodb文檔內包含數(shù)組,需要將數(shù)組中符合條件的數(shù)據(jù)過濾出來并返回結果集,可以用兩種方式來查詢group或filter。
數(shù)據(jù)源:

{
  "_id" : ObjectId("5bbcc0c9a74db9804e78a157"),
  "uid" : "1000001",
  "name" : "zhangsan",
  "addrs" : [ 
    {
      "is_query" : "1",
      "city" : "北京"
    }, 
    {
      "is_query" : "0",
      "city" : "上海"
    }, 
    {
      "is_query" : "1",
      "city" : "深圳"
    }
  ]
}
{
  "_id" : ObjectId("5bbcc167a74db9804e78a172"),
  "uid" : "1000002",
  "name" : "lisi",
  "addrs" : [ 
    {
      "is_query" : "0",
      "city" : "北京"
    }, 
    {
      "is_query" : "0",
      "city" : "上海"
    }, 
    {
      "is_query" : "1",
      "city" : "深圳"
    }
  ]
}

要求查詢指定uid下,addrs數(shù)組中只包含is_query等于1的結果集(0的不包含)。

查詢語句:

方法一:使用$unwind將addrs數(shù)組打散,獲取結果集后用$match篩選符合條件的數(shù)據(jù),最后使用$group進行聚合獲取最終結果集。

db.getCollection('user').aggregate(
  [
    {  
      $unwind: "$addrs" 
    },
    { 
      $match : {
        "uid":"1000001", 
        "addrs.is_query": "1" 
      } 
    },
    { 
      $group : { 
        "_id" : "$uid", 
        "addrs": { $push: "$addrs" } 
      } 
    } 
  ]
)

Result:

{
  "_id" : "1000001",
  "addrs" : [ 
    {
      "is_query" : "1",
      "city" : "北京"
    }, 
    {
      "is_query" : "1",
      "city" : "深圳"
    }
  ]
}

方法二:使用$match過濾符合條件的根文檔結果集,然后使用$project返回對應字段的同時,在addrs數(shù)組中使用$filter進行內部過濾,返回最終結果集

db.getCollection('user').aggregate(
  [
    { 
      $match : { "uid": "1000001" } 
    },
    {
      $project: {
        "uid": 1,
        "name": 1,
        "addrs": {
          $filter: {
            input: "$addrs",
            as: "item",
            cond: { $eq : ["$$item.is_query","1"] }
          }
        }
      }
    }
  ]
)

Result:

{
  "_id" : ObjectId("5bbcc0c9a74db9804e78a157"),
  "uid" : "1000001",
  "name" : "zhangsan",
  "addrs" : [ 
    {
      "is_query" : "1",
      "city" : "北京"
    }, 
    {
      "is_query" : "1",
      "city" : "深圳"
    }
  ]
}

相對于$group分組聚合返回結果集的方式,在當前查詢要求下$filter顯得更加優(yōu)雅一些,也比較直接。當然如果包含統(tǒng)計操作,比如要求返回is_query等于1的數(shù)量,這時候$group就非常合適了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Windows下把MongoDB安裝為系統(tǒng)服務的方法

    Windows下把MongoDB安裝為系統(tǒng)服務的方法

    這篇文章主要介紹了Windows下把MongoDB安裝為系統(tǒng)服務的方法,本文詳細介紹了將mongoDB安裝為WinXP下系統(tǒng)服務的過程,需要的朋友可以參考下
    2014-10-10
  • MongoDB分組查詢和聚合查詢實例教程

    MongoDB分組查詢和聚合查詢實例教程

    聚合(aggregate)是MongoDB的高級查詢語言,它允許我們通過轉化合并多個文檔的數(shù)據(jù)來生成新的在單個文檔里不存在的文檔信息,下面這篇文章主要給大家介紹了關于MongoDB分組查詢和聚合查詢的相關資料,需要的朋友可以參考下
    2023-05-05
  • MongoDB 3.0+安全權限訪問控制詳解

    MongoDB 3.0+安全權限訪問控制詳解

    MongoDB 3.0 安全權限訪問控制,在添加用戶上面3.0版本和之前的版本有很大的區(qū)別,這里就說明下3.0的添加用戶的方法。由于這版本改變的有些大,解決了很久,終于解決,下面把解決的步驟以及思路分享給大家。
    2018-06-06
  • mongodb driver使用代碼詳解

    mongodb driver使用代碼詳解

    MongoDB 是一個基于分布式文件存儲的數(shù)據(jù)庫,由 C++ 語言編寫,這篇文章主要介紹了mongodb driver使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • MongoDB存儲時間時差問題的解決方法

    MongoDB存儲時間時差問題的解決方法

    這篇文章主要給大家介紹了關于MongoDB存儲時間時差問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mongodb具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • win7平臺快速安裝、啟動mongodb的方法

    win7平臺快速安裝、啟動mongodb的方法

    這篇文章主要介紹了win7平臺快速安裝、啟動mongodb的方法,結合圖文形式分析了win7平臺下載、安裝、啟動、配置MongoDB數(shù)據(jù)庫的方法與注意事項,需要的朋友可以參考下
    2020-05-05
  • MongoDB如何對數(shù)組中的元素進行查詢詳解

    MongoDB如何對數(shù)組中的元素進行查詢詳解

    MongoDB在文檔上支持數(shù)組,其次數(shù)組上可以實現(xiàn)嵌套,以及數(shù)組元素也可以文檔。所以下面這篇文章主要給大家介紹了關于MongoDB如何對數(shù)組中元素進行查詢的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • MongoDB聚合運算符$toBool詳解

    MongoDB聚合運算符$toBool詳解

    $toBool聚合運算符將指定的值轉換為布爾類型boolean,這篇文章主要介紹了MongoDB聚合運算符:$toBool的相關知識,需要的朋友可以參考下
    2024-05-05
  • MongoDB使用小結:一些不常見的經(jīng)驗分享

    MongoDB使用小結:一些不常見的經(jīng)驗分享

    最近一年忙碌于數(shù)據(jù)處理相關的工作,跟MongoDB打交道極多,以下為實踐過程中的Q&A,后續(xù)會不定期更新補充
    2017-03-03
  • Linux安裝MongoDB?4.0.3詳細步驟

    Linux安裝MongoDB?4.0.3詳細步驟

    這篇文章主要介紹了Linux安裝MongoDB?4.0.3詳細步驟的相關資料,需要的朋友可以參考下
    2023-06-06

最新評論