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

主頁(yè) > 知識(shí)庫(kù) > MongoDB操作符中的$elemMatch問題

MongoDB操作符中的$elemMatch問題

熱門標(biāo)簽:crm外呼系統(tǒng)聯(lián)系方式 智能外呼系統(tǒng)官網(wǎng) 青白江400企業(yè)電話申請(qǐng) 內(nèi)蒙古營(yíng)銷智能外呼系統(tǒng)哪個(gè)好 呼和浩特外呼系統(tǒng)原理是什么 小裙科技電銷機(jī)器人怎樣 外呼線路資源屬于電信業(yè)務(wù)嗎 長(zhǎng)沙電銷外呼防封卡是什么 河南電話外呼系統(tǒng)招商

問題

如果MongoDB 數(shù)據(jù)庫(kù)集合中僅存在一條記錄

{
  "_id" : ObjectId("5e6b4ef546b5f44e5c5b276d"),
  "name" : "趙小明",
  "used_name" : [ 
    "趙明", 
    "趙小朋"
  ],
  "age" : 16,
  "gender" : 0,
  "relatives" : [ 
    {
      "name" : "趙剛",
      "relationship" : 0
    }, 
    {
      "name" : "秀英",
      "relationship" : 1
    }
  ]
}

我們執(zhí)行查詢

db.getCollection('Persion').find({"relatives.name": "趙剛", "relatives.relationship": 1})

此時(shí)會(huì)得到結(jié)果嗎?

最開始我想當(dāng)然的以為是不會(huì)出現(xiàn)結(jié)果的,但結(jié)果往往與期望背道而馳。

什么,一瞬間我陷入了迷茫,Mongo的查詢結(jié)果不是必須都滿足所有條件的嗎?

分析

不信邪的我又嘗試了喜聞樂見的小白查詢

db.getCollection('Persion').find({"name": "趙小明", "age": 18})

這次結(jié)果為空,嗯,這才是我熟悉的Mongo嘛?

那這兩次查詢有啥區(qū)別呢?不同有兩點(diǎn)

  • 是否為二級(jí)字段
  • 是否為數(shù)組

那我們將數(shù)據(jù)改為

{
  "_id" : ObjectId("5e6b4ef546b5f44e5c5b276d"),
  "name" : "趙小明",
  "used_name" : [ 
    "趙明", 
    "趙小朋"
  ],
  "age" : 16,
  "gender" : 0,
  "relative" : {
    "name" : "趙剛",
    "relationship" : 0
  }
}

繼續(xù)執(zhí)行查詢

db.getCollection('Persion').find({"relatives.name": "趙剛", "relatives.relationship": 1})

此次結(jié)果為空集

接下來嘗試查詢

db.getCollection('Persion').find({"relatives.name": "趙剛", "relatives.relationship": 0})

此次可得到一條結(jié)果

通過上述兩次查詢基本可以排除二級(jí)字段的影響

那就是數(shù)組的原因了,那具體是為什么呢?

將數(shù)據(jù)還原為最初的格式,繼續(xù)進(jìn)行不同的查詢

db.getCollection('Persion').find({"relatives.name": "趙剛", "relatives.relationship": 2})

此次結(jié)果為空集

那我們可以得到結(jié)論,對(duì)于數(shù)組字段,每個(gè)查詢條件僅需有數(shù)組中的一項(xiàng)滿足條件即可,而不是數(shù)組中必須存在一項(xiàng)滿足所有查詢條件。

那如果我想達(dá)到后面的效果要怎么做呢?

解決

此時(shí),我們需要用到我們今天的主角 $elemMatch ,它的官方定義是這樣的:

The $elemMatch operator matches documents that contain an array field with at least one element that matches all the specified query criteria.

{ field>: { $elemMatch: { query1>, query2>, ... } } }
If you specify only a single condition in the $elemMatch expression, you do not need to use $elemMatch.

You cannot specify a $where expression in an $elemMatch.
You cannot specify a $text query expression in an $elemMatch.

那上邊的查詢我們可以改成

db.getCollection('Persion').find({"relatives":{"$elemMatch":{"name": "趙四", "relationship": 0}}})

此時(shí)可以得到結(jié)果,但

db.getCollection('Persion').find({"relatives":{"$elemMatch":{"name": "趙四", "relationship": 1}}})

結(jié)果為空集

結(jié)語(yǔ)

此操作符和索引也有一些不得不說的事,今天就不在這里細(xì)說了,之后我會(huì)專門總結(jié)一篇有關(guān)MongoDB索引相關(guān)的博客

等不及的看官可以自行百度Google一下。

總結(jié)

到此這篇關(guān)于MongoDB操作符之$elemMatch的文章就介紹到這了,更多相關(guān)MongoDB操作符之$elemMatch內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MongoDB 管道的介紹及操作符實(shí)例
  • 基于MongoDB數(shù)據(jù)庫(kù)的數(shù)據(jù)類型和$type操作符詳解

標(biāo)簽:呼倫貝爾 舟山 安順 池州 菏澤 黃石 白山 楚雄

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB操作符中的$elemMatch問題》,本文關(guān)鍵詞  MongoDB,操作,符,中的,elemMatch,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB操作符中的$elemMatch問題》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于MongoDB操作符中的$elemMatch問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久另类TS人妖一区二区| 男人露jj| 日韩?欧美?国产| 午夜在线看片一区二区| 一区二区三区91| 国产a精品三级| 老头扶住黄蓉翘臀挺进去| 女的被?到爽羞羞jk视频| 亚洲天堂午夜| 国产日韩欧美久久久| 好吊操在线| 女强被?到爽??| 国产www亚洲а∨天堂| 日本在线观看免费高清| 成人区精品一区二区不卡亚洲| 粉嫩99国产精品久久久久久人妻| 人与拘一级A片| 91在线中文| 在线导航福利| metart欧美撒尿人体欣赏精品| 女忍者被调教得奶水泛滥小说 | 黄色直播软件下载| 成熟女人毛片WWW免费版在线| 免费无遮挡??视频网站免费。| 钰慧番外篇| 欧美性xxxx极品高清| 小说h嫩交| 无码人妻AⅤ一区二区三区蓬泽谣| 极品嫩苞撕裂哭叫灌白浆在线观看| 操小姨子逼| 亚瑟AV精品| 扒开美女?狂揉?下部| 自w到高c的16种方法视频| 69式互添h高辣| 日本五十路六十30人8时间| 做爰又粗又大又黄又硬| 无限资源欧美| 国产下药迷倒白嫩美女96| 开心午夜婷婷色婷在线| 久久99热频精品6| 婷婷丁香五月久久丫狠狠|