在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MongoDB中如何檢查一個字段是否存在

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-07 16:47 ? 次閱讀

在本文中,我們來聊聊如何在 MongoDB 中檢查一個字段是否存在。

首先,我們需要創建一個簡單的Mongo數據庫, 然后放入一些假數據,以便在例子中使用。之后,我們將實戰一下如何在 Mongo 客戶端中進行查詢以及在 Java 代碼中檢查字段是否存在。

示例配置

首先,讓我們把Mongo shell上下文切換到一個存在的數據庫。

use javanorth

我們將在users集合中插入一個用戶。

db.users.insert({name: "java", surname: "north" })

現在我們已經做好了準備工作,接下去就講講如何檢查字段是否存在。

在Mongo Shell中檢查字段是否存在

我們能夠通過基本的查詢來檢查特定字段的存在與否,例如在Mongo Shell或其他數據庫控制臺。Mongo提供了一個特殊的查詢操作符,$exists方便我們查詢驗證。

db.users.find({ 'name' : { '$exists' : true }})

我們先使用一個標準的find 方法,在這個方法中,我們指定我們要查詢的字段,并使用$exists查詢操作符。如果name字段在users集合中存在,所有包含該字段的記錄都將會被返回。

[
  {
    "_id": {"$oid": "6115ad91c4999031f8e6f582"},
    "name": "java",
    "surname": "north"
  }
]

如果該字段不存在,我們將得到一個空的結果。

在Java中檢查字段的存在性

我們先添加Mongo driver 這個Maven的依賴包

< dependency >
    < groupId >org.mongodb< /groupId >
    < artifactId >mongo-java-driver< /artifactId >
    < version >3.12.10< /version >
< /dependency >

?然后通過代碼構建一個連接到數據庫

MongoClient mongoClient = new MongoClient();
MongoDatabase db = mongoClient.getDatabase("javanorth");
MongoCollection< Document > collection = db.getCollection("users");

使用過濾器

com.mongodb.client.model.Filters是Mongo依賴的一個工具類,包含了很多有用的方法。我們就只需要使用exists()方法。

Document nameDoc = collection.find(Filters.exists("name")).first();
assertNotNull(nameDoc);
assertFalse(nameDoc.isEmpty());

首先,我們嘗試從users集合中尋找元素,并得到第一個找到的元素。如果指定的字段存在,我們得到一個nameDoc文檔作為響應。

現在,讓我們來看看當我們試圖找到一個不存在的字段時會發生什么。

Document nameDoc = collection.find(Filters.exists("non_existing")).first();
assertNull(nameDoc);

如果沒有找到元素,我們會得到一個 null 的Document作為響應。

使用 Document 查詢

com.mongodb.client.model.Filters類并不是檢查字段存在的唯一方法。我們也可以使用com.mongodb.BasicDBObject:的來查詢驗證。

Document query = new Document("name", new BasicDBObject("$exists", true));
Document doc = collection.find(query).first();
assertNotNull(doc);
assertFalse(doc.isEmpty());

結果與前面的例子相同。如果元素被找到了,我們會收到一個非nullDocument

當我們試圖找一個不存在的字段時,代碼的結果也是一樣的。

Document query = new Document("non_existing", new BasicDBObject("$exists", true));
Document doc = collection.find(query).first();
assertNull(doc);

如果沒有找到任何元素,我們會得到一個null 的 Document 作為響應。

總結

在這篇文章中,我們討論了如何在MongoDB中檢查字段是否存在。我們使用可以使用一個基本的查詢來檢查一個字段是否存在。也采用了com.mongodb.client.model.FiltersDocument查詢方法來檢查字段的存在。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    20

    文章

    2987

    瀏覽量

    107347
  • 數據庫
    +關注

    關注

    7

    文章

    3905

    瀏覽量

    65893
  • 代碼
    +關注

    關注

    30

    文章

    4891

    瀏覽量

    70371
  • Shell
    +關注

    關注

    1

    文章

    372

    瀏覽量

    24083
  • mongodb
    +關注

    關注

    0

    文章

    24

    瀏覽量

    451
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    當從接收DMA次接收一個字節時,如何檢查是否已接收到任意長度的所有數據包呢?

    當從接收 DMA 次接收一個字節時,如何檢查是否已接收到任意長度的所有數據包?
    發表于 04-21 08:22

    求助:數組怎么樣存入數據庫的一個字段呢?

    看到程序,它將visa采集到的數據通過波形顯示,同時數據創建為數組,存入到數據庫的一個字段?在數據庫里看到,比如波形的字段下,內容是長二進制數據,,求大神指導,這是怎么做的呢?萬分
    發表于 11-10 11:35

    怎樣把二維數組存到ACCESS數據庫的一個字段呢?

    怎樣把二維數組存到數據庫的一個字段,并方便從這個字段取出來?有沒有做過的,麻煩出來指點下啊 小弟先謝謝了
    發表于 08-01 20:33

    寫入一個字節到24c02并讀出來驗證

    寫入一個字節到24c02并讀出來驗證 本課的程序已經包含了上顆的內容,增加了讀
    發表于 08-09 22:01 ?3264次閱讀
    寫入<b class='flag-5'>一個字</b>節到24c02并讀出來驗證

    一個字節到24c02(源程序)

    一個字節到24c02(源程序) 24c02是非揮發eeprom存儲器器件,采用的IIC總線技術。24c02在許多試驗中都有出現。
    發表于 08-11 19:17 ?3007次閱讀

    UART 發送數據丟失最后一個字

    STM32 UART 發送數據丟失最后一個字
    發表于 12-04 15:10 ?0次下載

    C語言教程之輸出一個字符的前驅字符

    C語言教程之輸出一個字符的前驅字符,很好的C語言資料,快來學習吧。
    發表于 04-22 17:45 ?0次下載

    1602與51寫一個字母_源代碼

    1602與51寫一個字母_源代碼,感興趣的可以看看。
    發表于 07-19 16:55 ?2次下載

    關于UART發送數據丟失最后一個字節問題的詳細解析-pdf

    STM32 UART_發送數據丟失最后一個字
    發表于 04-10 11:23 ?3次下載

    如何編寫C語言程序判斷一個字是否是字母或數字

    怎樣判斷一個字是否一個字母? 字母表的所有字母(包括計算機鍵盤上的所有鍵)都被賦予了
    發表于 01-23 14:50 ?10次下載
    如何編寫C語言程序判斷<b class='flag-5'>一個字</b>符<b class='flag-5'>是否</b>是字母或數字

    如何使用Python3檢查文件是否存在

    檢查文件是否存在的方法, 在Python3 文件操作中經常被用到, 因為,只有文件存在, 我們才可以對文件進行下步處理, 那么,常用的
    發表于 10-26 17:08 ?14次下載
    如何使用Python3<b class='flag-5'>檢查</b>文件<b class='flag-5'>是否</b><b class='flag-5'>存在</b>

    淺談STM32串口通信()基本介紹和一個字節傳輸的實現

    文章目錄0 傳輸引腳1 傳輸一個字節1.1 發送一個字節1.2 接收一個字節2 代碼2.1 配置2.2 發送一個字節2.3 接收一個字節0
    發表于 12-24 18:51 ?14次下載
    淺談STM32串口通信(<b class='flag-5'>一</b>)基本介紹和<b class='flag-5'>一個字</b>節傳輸的實現

    如何利用Java判斷一個字符串是否包含某個字

    如何利用Java通過不同的方法來判斷一個字符串是否包含某個字符。 **2 ****方法** 1. .contains方法
    的頭像 發表于 02-17 15:13 ?1880次閱讀
    如何利用Java判斷<b class='flag-5'>一個字</b>符串<b class='flag-5'>是否</b>包含某<b class='flag-5'>個字</b>符

    Python檢查字符串包含的方法

    Python 有多種處理字符串的方法。今天我們介紹如何檢查一個字符串是否包含另一個字符串。
    的頭像 發表于 05-14 16:02 ?1.6w次閱讀

    UART發送數據丟失最后一個字

    電子發燒友網站提供《UART發送數據丟失最后一個字節.pdf》資料免費下載
    發表于 08-01 17:57 ?1次下載
    UART發送數據丟失最后<b class='flag-5'>一個字</b>節
    主站蜘蛛池模板: 欧美成人性色区 | 午夜在线免费观看视频 | 久久天天躁夜夜躁狠狠85台湾 | 国产精品久久久久久福利 | 国产乱码一区二区三区四川人 | 亚洲一区免费在线 | 2020年亚洲天天爽天天噜 | 4hc44四虎www亚洲 | 美女视频黄.免费网址 | 一区二区视频在线 | 色香五月 | 人与禽交免费网站视频 | 日本特黄特色大片免费看 | 欧美黑粗特黄午夜大片 | 在线看你懂 | 狠狠操狠狠 | 日本三级黄色网址 | 欧美四虎 | 国产内地激情精品毛片在线一 | 日本免费大黄 | 亚洲福利秒拍一区二区 | 成年美女黄网站色大免费视频 | 亚洲精品资源在线 | 欧美午夜小视频 | 五月婷婷六月丁香激情 | 婷婷第四色 | 人人添人人澡人人澡人人人爽 | 人人干人人澡 | 免费看美女的逼 | 日韩一卡 二卡 三卡 四卡 免费视频 | 一区二区三区网站 | 美女扒开尿口给男人桶爽视频 | 成年人黄色免费网站 | 欧美成人午夜精品一区二区 | 成人国产永久福利看片 | 视频在线观看免费视频 | 91福利国产在线观看网站 | 久久三级毛片 | 视频在线观看h | 一区在线播放 | 69国产成人综合久久精品 |