MongoDB原來也就這么回事!
大家好,我是指北君。
在本文中,我們來聊聊如何在 MongoDB 中檢查一個字段是否存在。
首先,我們需要創(chuàng)建一個簡單的Mongo數(shù)據(jù)庫, 然后放入一些假數(shù)據(jù),以便在例子中使用。之后,我們將實戰(zhàn)一下如何在 Mongo 客戶端中進行查詢以及在 Java 代碼中檢查字段是否存在。
示例配置
首先,讓我們把Mongo shell上下文切換到一個存在的數(shù)據(jù)庫。
我們將在users集合中插入一個用戶。
現(xiàn)在我們已經(jīng)做好了準(zhǔn)備工作,接下去就講講如何檢查字段是否存在。
在Mongo Shell中檢查字段是否存在
我們能夠通過基本的查詢來檢查特定字段的存在與否,例如在Mongo Shell或其他數(shù)據(jù)庫控制臺。Mongo提供了一個特殊的查詢操作符,$exists方便我們查詢驗證。
我們先使用一個標(biāo)準(zhǔn)的find? 方法,在這個方法中,我們指定我們要查詢的字段,并使用$exists?查詢操作符。如果name?字段在users集合中存在,所有包含該字段的記錄都將會被返回。
如果該字段不存在,我們將得到一個空的結(jié)果。
在Java中檢查字段的存在性
我們先添加Mongo driver 這個Maven的依賴包
然后通過代碼構(gòu)建一個連接到數(shù)據(jù)庫
使用過濾器
com.mongodb.client.model.Filters?是Mongo依賴的一個工具類,包含了很多有用的方法。我們就只需要使用exists()方法。
首先,我們嘗試從users?集合中尋找元素,并得到第一個找到的元素。如果指定的字段存在,我們得到一個nameDoc文檔作為響應(yīng)。
現(xiàn)在,讓我們來看看當(dāng)我們試圖找到一個不存在的字段時會發(fā)生什么。
如果沒有找到元素,我們會得到一個 null 的Document作為響應(yīng)。
使用 Document 查詢
com.mongodb.client.model.Filters?類并不是檢查字段存在的唯一方法。我們也可以使用com.mongodb.BasicDBObject:的來查詢驗證。
結(jié)果與前面的例子相同。如果元素被找到了,我們會收到一個非null的Document。
當(dāng)我們試圖找一個不存在的字段時,代碼的結(jié)果也是一樣的。
如果沒有找到任何元素,我們會得到一個null 的 Document 作為響應(yīng)。
總結(jié)
在這篇文章中,我們討論了如何在MongoDB中檢查字段是否存在。我們使用可以使用一個基本的查詢來檢查一個字段是否存在。也采用了com.mongodb.client.model.Filters和Document查詢方法來檢查字段的存在。