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

主頁 > 知識庫 > MongoDB如何對數組中的元素進行查詢詳解

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

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

前言

MongoDB是文檔型數據庫,每個文檔(doc)表示數據的一項記錄。相比關系型DB的row只能使用簡單的數據類型,doc能夠使用復雜的數據類型:內嵌doc,數組。MongoDB的數組是一系列元素的集合,使用中括號 [] 表示數組,例如:[1,2,3]的元素是整數值,[{name:"t5"}, {name:"t7"}],[ {name:"t5", age:21}, {name:"t7", age:22} ]的元素是doc。

在MongoDB中,數組元素允許重復,元素的位置是固定的。如果兩個數組相等,那么這兩個數組的元素和及其位置都相同。

MongoDB中根據數組子元素進行匹配,有兩種方式。

  • 使用 “[數組名].[子元素字段名]” 的方式進行匹配。
  • 使用 “[數組名]” $elemMatch { [子元素字段名] }的方式。

不同點在于所匹配的主體不同。

“[數組名].[子元素字段名]” 的方式匹配的主體為 “[數組名]”, 適用于單個條件,如果是多個條件, 則變成數組子元素之間的“或”運算。

請看示例:

假設某個集合內有2條數據:

document1 如下:

{ 
 "_id" : "123", 
 "name" : "人文醫學", 
 "qList" : [
  {
   "qid" : 1, 
   "content" : "醫學倫理學的公正原則", 
   "reorderFlag" : 1
  }, 
  {
   "qid" : 2, 
   "content" : "制定有關人體實驗的基本原則", 
   "reorderFlag" : 0
  }
 ]
}

document2 如下:

{ 
 "_id" : "124", 
 "name" : "人文醫學2", 
 "qList" : [
  {
   "qid" : 1, 
   "content" : "醫學倫理學的公正原則", 
   "reorderFlag" : 0
  }, 
  {
   "qid" : 2, 
   "content" : "制定有關人體實驗的基本原則", 
   "reorderFlag" : 1
  }
 ]
}

找出數組中, 具有 qid=1并且reorderFlag=0的記錄

查詢數組內同一條記錄同時滿足2個條件的語句:

{ "qList": { $elemMatch: { "qid": 1, "reorderFlag": 0} } }

查詢結果是:

{ 
 "_id" : "124", 
 "name" : "人文醫學2", 
 "qList" : [
  {
   "qid" : NumberInt(1), 
   "content" : "醫學倫理學的公正原則", 
   "reorderFlag" : NumberInt(0)
  }, 
  {
   "qid" : NumberInt(2), 
   "content" : "制定有關人體實驗的基本原則", 
   "reorderFlag" : NumberInt(1)
  }
 ]
}

可以看到, 其執行結果是, 對數組內的每一個子元素, 執行 $elemMatch 匹配, 可以進行多個條件的匹配。

找出數組中, qid=1 或者 reorderFlag=0的記錄

數組整體能滿足以下2個條件:

{ "qList.qid": 1, "qList.reorderFlag": 0}

執行的主體是 qList, 要求: 有某些子元素滿足 qid=1, 也要有某些子元素滿足 reorderFlag=0`。

查詢結果是:

{ 
 "_id" : "123", 
 "name" : "人文醫學", 
 "qList" : [
  {
   "qid" : NumberInt(1), 
   "content" : "醫學倫理學的公正原則", 
   "reorderFlag" : NumberInt(1)
  }, 
  {
   "qid" : NumberInt(2), 
   "content" : "制定有關人體實驗的基本原則", 
   "reorderFlag" : NumberInt(0)
  }
 ]
}
{ 
 "_id" : "124", 
 "name" : "人文醫學2", 
 "qList" : [
  {
   "qid" : NumberInt(1), 
   "content" : "醫學倫理學的公正原則", 
   "reorderFlag" : NumberInt(0)
  }, 
  {
   "qid" : NumberInt(2), 
   "content" : "制定有關人體實驗的基本原則", 
   "reorderFlag" : NumberInt(1)
  }
 ]
}

可以看到, 其執行結果是, 對數組進行匹配, 其中需要有子元素 滿足 "qList.qid": 1, 還需要有子元素 滿足 "qList.qid": 1, , 適合進行單個條件的匹配。

如果是單個條件匹配, 則以下方式結果是一樣的。

{ "qList.qid": 1}

或者

{ "qList": { $elemMatch: { "qid": 1} } }

查詢的結果都是2條記錄。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • MongoDB中多表關聯查詢($lookup)的深入講解
  • Mongodb實現的關聯表查詢功能【population方法】
  • MongoDB各種查詢操作詳解
  • MongoDB查詢操作限制返回字段的方法
  • PHP中MongoDB數據庫的連接、添加、修改、查詢、刪除等操作實例
  • MongoDB下根據數組大小進行查詢的方法
  • MongoDB導出查詢結果到文件例子
  • MongoDB查詢技巧總結
  • MongoDB查詢性能優化驗證及驗證
  • mongodb實現同庫聯表查詢方法示例
  • MongoDB的基礎查詢和索引操作方法總結
  • MongoDB多表關聯查詢操作實例詳解

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

巨人網絡通訊聲明:本文標題《MongoDB如何對數組中的元素進行查詢詳解》,本文關鍵詞  MongoDB,如何,對,數組,中的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB如何對數組中的元素進行查詢詳解》相關的同類信息!
  • 本頁收集關于MongoDB如何對數組中的元素進行查詢詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产在线拍揄自揄拍无码网站新闻 | 黄视频免费网站| 乖女啊~嗯去厨房里做H漫画| 日本无翼乌全彩j奶无遮挡漫 | b站24小时限量免费看视频| 97人妻天天摸天天爽| 国产精品熟妇一区二区三区四区| 韩影网三级| 日日操夜夜操视频| 啊太深?拔出来?痛曰本MV| 长篇武侠纯肉H爽文| 啊灬啊灬啊灬快灬深用力男| 大胸孕妇孕交pregnantsex| 国产精品制服| 欧美精品一区二区三区AV麻豆| 久久这里只精品99re免费| 乱码一区二区三区完整视频| 男女爽插图| 适合一个人偷偷看的书言情| 91啪国自产| 欧美8-18sexvideos1718| 青草视频在线| 总攻肉| 韩国大尺度无遮挡床戏电影| 看全黄大色黄大片老人做| 77777免费观看电视剧推荐| china猛男粗口gay体育生| 新潘金莲电影在线视频观看完整版| 美女裸体?开腿羞羞吞精| 久久久久无码精品国产电影| 成人免费精品视频| 穿成校园文的炮灰男配| 国产精品无码一区二区入口红粉| 亚洲欧洲一区二区三区久久| 肉文在线阅读| 摸胸舔下面| 巜一边亲一边摸下奶韩国免费| 香港三级日本三级韩国三级| 日本精品卡二卡三卡四卡2021| 美国私人vps一夜爽毛片免费| 张筱雨粉嫩啪啪人体|