好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > mongodb如何對文檔內數組進行過濾的方法步驟

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

熱門標簽:老虎洗衣店地圖標注 濟南電銷機器人加盟公司 怎么投訴地圖標注 杭州人工電銷機器人價格 云南外呼系統 廣州長安公司怎樣申請400電話 呼和浩特電銷外呼系統加盟 蘋果汽車租賃店地圖標注 電銷機器人是什么軟件

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


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

{
  "_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數組中只包含is_query等于1的結果集(0的不包含)。

查詢語句:

方法一:使用$unwind將addrs數組打散,獲取結果集后用$match篩選符合條件的數據,最后使用$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數組中使用$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顯得更加優雅一些,也比較直接。當然如果包含統計操作,比如要求返回is_query等于1的數量,這時候$group就非常合適了。

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

您可能感興趣的文章:
  • 分布式文檔存儲數據庫之MongoDB訪問控制的操作方法
  • 分布式文檔存儲數據庫之MongoDB備份與恢復的實踐詳解
  • 分布式文檔存儲數據庫之MongoDB分片集群的問題
  • SpringDataMongoDB多文檔事務的實現
  • MongoDB中文檔的更新操作示例詳解
  • MongoDB數據庫文檔操作方法(必看篇)
  • mongodb 數據類型(null/字符串/數字/日期/內嵌文檔/數組等)
  • PHP庫 查詢Mongodb中的文檔ID的方法
  • MongoDB如何更新多級文檔的數據

標簽:玉林 雞西 自貢 無錫 遼陽 興安盟 廈門 泰安

巨人網絡通訊聲明:本文標題《mongodb如何對文檔內數組進行過濾的方法步驟》,本文關鍵詞  mongodb,如何,對,文檔,內,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mongodb如何對文檔內數組進行過濾的方法步驟》相關的同類信息!
  • 本頁收集關于mongodb如何對文檔內數組進行過濾的方法步驟的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 金发尤物被大战黑巨茎| 日韩亚射| 一女多男舔一视频| 国产乱婬AV精品一区二区小蝌,,,| 777影院理论午夜伦不卡偷拍| 17club国产精品入口永久地址| 漂亮保姆2| 午夜爱爱毛片XXXX视频免费看| aika中文字幕永久在线| 色婷婷影院| 国内精品久久国产大陆| 黄色大片视频网站| 国产东北妇女XXXXX| 色哟哟| 小小水蜜桃5[电视剧]| 久久精品操| 长篇全黄h全肉细节文| 中国白嫩丰满人妻videos| 美女解开胸罩喂男人吃奶| 激情图片小说| 亚洲人成色A片7777| 欧美黑寡妇AAAAA片| 懂色Aⅴ一区二区三区在线播放 | 乱子伦农村xxxx视频| 男女搞鸡视频软件| 大胸裸体美女| 亚洲国产日韩精品91| 老师掀起裙子让我捅| 琪琪色在线观看| 侵犯熟睡中的h| 国产成人免费高清视频| 91w乳液78w78w乳液| 最新沟厕 女厕 盗撮| 小秘书夹的真紧好骚好爽| 手机看片1024欧美一级| 国产白浆视频在线播放| 最近中文高清MV免费版| 被?水好多18久久久爽白浆高潮| 性生生活30分钟免费| 亚洲最新视频| 日韩欧美一区在线|