日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
MongoDB原來(lái)也就這么回事!

大家好,我是指北君。

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、東臺(tái)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為東臺(tái)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

在本文中,我們來(lái)聊聊如何在 MongoDB 中檢查一個(gè)字段是否存在。

首先,我們需要?jiǎng)?chuàng)建一個(gè)簡(jiǎn)單的Mongo數(shù)據(jù)庫(kù), 然后放入一些假數(shù)據(jù),以便在例子中使用。之后,我們將實(shí)戰(zhàn)一下如何在 Mongo 客戶端中進(jìn)行查詢以及在 Java 代碼中檢查字段是否存在。

示例配置

首先,讓我們把Mongo shell上下文切換到一個(gè)存在的數(shù)據(jù)庫(kù)。

use javanorth

我們將在users集合中插入一個(gè)用戶。

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

現(xiàn)在我們已經(jīng)做好了準(zhǔn)備工作,接下去就講講如何檢查字段是否存在。

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

我們能夠通過(guò)基本的查詢來(lái)檢查特定字段的存在與否,例如在Mongo Shell或其他數(shù)據(jù)庫(kù)控制臺(tái)。Mongo提供了一個(gè)特殊的查詢操作符,$exists方便我們查詢驗(yàn)證。

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

我們先使用一個(gè)標(biāo)準(zhǔn)的find? 方法,在這個(gè)方法中,我們指定我們要查詢的字段,并使用$exists?查詢操作符。如果name?字段在users集合中存在,所有包含該字段的記錄都將會(huì)被返回。

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

如果該字段不存在,我們將得到一個(gè)空的結(jié)果。

在Java中檢查字段的存在性

我們先添加Mongo driver 這個(gè)Maven的依賴包


org.mongodb
mongo-java-driver
3.12.10

然后通過(guò)代碼構(gòu)建一個(gè)連接到數(shù)據(jù)庫(kù)

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

使用過(guò)濾器

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

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

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

現(xiàn)在,讓我們來(lái)看看當(dāng)我們?cè)噲D找到一個(gè)不存在的字段時(shí)會(huì)發(fā)生什么。

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

如果沒(méi)有找到元素,我們會(huì)得到一個(gè) null 的Document作為響應(yīng)。

使用 Document 查詢

com.mongodb.client.model.Filters?類并不是檢查字段存在的唯一方法。我們也可以使用com.mongodb.BasicDBObject:的來(lái)查詢驗(yàn)證。

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

結(jié)果與前面的例子相同。如果元素被找到了,我們會(huì)收到一個(gè)非null的Document。

當(dāng)我們?cè)噲D找一個(gè)不存在的字段時(shí),代碼的結(jié)果也是一樣的。

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

如果沒(méi)有找到任何元素,我們會(huì)得到一個(gè)null 的 Document 作為響應(yīng)。

總結(jié)

在這篇文章中,我們討論了如何在MongoDB中檢查字段是否存在。我們使用可以使用一個(gè)基本的查詢來(lái)檢查一個(gè)字段是否存在。也采用了com.mongodb.client.model.Filters和Document查詢方法來(lái)檢查字段的存在。


當(dāng)前標(biāo)題:MongoDB原來(lái)也就這么回事!
分享路徑:http://m.5511xx.com/article/dhpdgje.html