国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - MongoDB - MongoDB操作符中的$elemMatch問題

MongoDB操作符中的$elemMatch問題

2020-05-27 15:35秦海山 MongoDB

這篇文章主要介紹了MongoDB操作符中的$elemMatch問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

問題

如果MongoDB 數據庫集合中僅存在一條記錄

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "_id" : ObjectId("5e6b4ef546b5f44e5c5b276d"),
  "name" : "趙小明",
  "used_name" : [
    "趙明",
    "趙小朋"
  ],
  "age" : 16,
  "gender" : 0,
  "relatives" : [
    {
      "name" : "趙剛",
      "relationship" : 0
    },
    {
      "name" : "秀英",
      "relationship" : 1
    }
  ]
}

我們執行查詢

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

此時會得到結果嗎?

最開始我想當然的以為是不會出現結果的,但結果往往與期望背道而馳。

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

分析

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

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

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

那這兩次查詢有啥區別呢?不同有兩點

  • 是否為二級字段
  • 是否為數組

那我們將數據改為

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "_id" : ObjectId("5e6b4ef546b5f44e5c5b276d"),
  "name" : "趙小明",
  "used_name" : [
    "趙明",
    "趙小朋"
  ],
  "age" : 16,
  "gender" : 0,
  "relative" : {
    "name" : "趙剛",
    "relationship" : 0
  }
}

繼續執行查詢

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

此次結果為空集

接下來嘗試查詢

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

此次可得到一條結果

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

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

將數據還原為最初的格式,繼續進行不同的查詢

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

此次結果為空集

那我們可以得到結論,對于數組字段,每個查詢條件僅需有數組中的一項滿足條件即可,而不是數組中必須存在一項滿足所有查詢條件。

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

解決

此時,我們需要用到我們今天的主角 $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}}})

此時可以得到結果,但

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

結果為空集

結語

操作符和索引也有一些不得不說的事,今天就不在這里細說了,之后我會專門總結一篇有關MongoDB索引相關的博客

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

總結

到此這篇關于MongoDB操作符之$elemMatch的文章就介紹到這了,更多相關MongoDB操作符之$elemMatch內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/SwordArt/p/12588365.html

延伸 · 閱讀

精彩推薦
  • MongoDBmongodb基本命令實例小結

    mongodb基本命令實例小結

    這篇文章主要介紹了mongodb基本命令,結合實例形式總結分析了MongoDB數據庫切換、查看、刪除、查詢等基本命令用法與操作注意事項,需要的朋友可以參考下...

    dawn-liu3652020-05-26
  • MongoDB遷移sqlserver數據到MongoDb的方法

    遷移sqlserver數據到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數據到MongoDb的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDB分布式文檔存儲數據庫之MongoDB分片集群的問題

    分布式文檔存儲數據庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲數據庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋...

    Linux-18743072020-12-20
  • MongoDBMongodb實現定時備份與恢復的方法教程

    Mongodb實現定時備份與恢復的方法教程

    這篇文章主要給大家介紹了Mongodb實現定時備份與恢復的方法教程,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面...

    chenjsh364522020-05-13
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
  • MongoDBMongoDB 內存使用情況分析

    MongoDB 內存使用情況分析

    都說 MongoDB 是個內存大戶,但是怎么知道它到底用了多少內存呢...

    MongoDB教程網10002020-09-29
  • MongoDBMongoDB中javascript腳本編程簡介和入門實例

    MongoDB中javascript腳本編程簡介和入門實例

    作為一個數據庫,MongoDB有一個很大的優勢——它使用js管理數據庫,所以也能夠使用js腳本進行復雜的管理——這種方法非常靈活 ...

    MongoDB教程網6982020-04-24
  • MongoDBMongoDB憑什么躋身數據庫排行前五

    MongoDB憑什么躋身數據庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續雄踞榜單前五,這個增幅在全榜僅次于PostgreSQL的77.99,而其相對于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久精品国产99国产精品 | 99久久精品国产一区二区三区 | 亚洲精品久久久久久国产精华液 | 午夜电影av| 免费视频一区 | 天堂av资源 | 国产精品久久久久久久福利院 | 亚洲成人免费影院 | 国产特级毛片aaaaaaa高清 | 欧美激情在线精品一区二区三区 | 国产视频色 | 国产一区| 在线观看成人 | 免费av一区二区三区 | 精品久久久久一区二区国产 | 一级毛片国产 | 成人av免费观看 | 久久99国产精品久久99大师 | 超碰二区| 日韩免费在线观看视频 | 色婷婷在线视频观看 | 欧美精品在线观看 | 日韩一区免费在线观看 | 午夜电影网 | 成人欧美一区二区三区白人 | 亚洲在线视频 | 欧美日韩中文在线观看 | 亚洲成人黄色 | 国产日韩一区二区三区 | 国产黄色一级片视频 | 欧美日韩第一页 | 日本一区二区三区日本免费 | 在线观看亚洲免费视频 | 久久成人18免费网站 | 国产干干干 | 亚洲一区二区三区免费观看 | 亚洲欧美精品一区二区 | 毛片网 | 国产韩国精品一区二区三区 | 欧美黑人狂躁日本寡妇 | 日韩视频一区二区三区 |