MongoDB 之 手把手教你增删改查 MongoDB - 2
?
我們?cè)??MongoDB 之 你得知道MongoDB是個(gè)什么鬼 MongoDB - 1? 中學(xué)習(xí)了如果安裝部署一個(gè) MongoDB
如果沒(méi)看到我的金玉良言的話(huà),就重新打開(kāi)一次客戶(hù)端和服務(wù)端吧
本章我們來(lái)學(xué)習(xí)一下關(guān)于 MongoDB的增刪改查
一.MongoDB操作 之 原生ORM,根本不存在SQL語(yǔ)句
創(chuàng)建數(shù)據(jù)庫(kù):這里和一般的關(guān)系型數(shù)據(jù)庫(kù)一樣,都要先建立一個(gè)自己的數(shù)據(jù)庫(kù)空間
嗯嗯嗯嗯,我感受到了你內(nèi)心的驚呼,瞅瞅你們這些沒(méi)見(jiàn)過(guò)世面的樣子
是的,MongoDB設(shè)計(jì)的比較隨意,沒(méi)有就認(rèn)為你是在創(chuàng)建,use LuffyCity_Com是不存在的,所以MongoDB就認(rèn)為你是要?jiǎng)?chuàng)建并使用
這個(gè)概念一定要記清楚哦,MongoDB中如果你使用了不存在的對(duì)象,那么就等于你在創(chuàng)建這個(gè)對(duì)象哦
使用了不存在的對(duì)象,就代表創(chuàng)建對(duì)象,我們使用這一謬論創(chuàng)建一張表(Collection)試試
看來(lái)真的不是謬論,真的成功的創(chuàng)建了一個(gè)Oldboy的Collection
那么接下來(lái)就是在表(Collection)中添加一條數(shù)據(jù)了,怎么添加呢?
二.MongoDB 之 插入數(shù)據(jù)(insert ? ? insertOne ? ? insertMany) 之 Collection 點(diǎn)兒出一切操作 之 insert
insert:插入一條或者多條數(shù)據(jù),需要帶有允許插入多條的參數(shù),這個(gè)方法目前官方已經(jīng)不推薦嘍
db.Oldboy.insert({"name":"DragonFire","age":20})
insertOne: 插入一條數(shù)據(jù),官方推薦
我們可以看出來(lái)兩種方法的返回值截然不同對(duì)吧
insertMany:插入多條數(shù)據(jù),無(wú)需參數(shù)控制,官方推薦
?
這就是我們向LuffyCity_Com.Oldboy中插入了多條數(shù)據(jù):
[{"name":"DragonFire","age":20 },{
"name":"WuSir",
"age":19
}]
這里留下一個(gè)數(shù)據(jù)類(lèi)型的懸念
插入完成就要查詢(xún)
三.MongoDB? 之? 查詢(xún)數(shù)據(jù)(find findOne) 之 這里沒(méi)有findMany
這里不是select,如果你的第一反應(yīng)是select 證明你關(guān)系型數(shù)據(jù)庫(kù)沒(méi)白學(xué)
find() 無(wú)條件查找:將該表(Collection)中所有的數(shù)據(jù)一次性返回
db.Oldboy.find({name:"WuSir2b"}) 條件查找:name等于WuSir2b的數(shù)據(jù),這里會(huì)返回多條結(jié)果
說(shuō)到這里,有的同學(xué)不禁要問(wèn)一下:"_id":ObjectId("亂七八糟一道對(duì)看著毫無(wú)關(guān)系的一對(duì)字符串") 是什么,我們插入的時(shí)候并沒(méi)有一個(gè)字段(Field)并沒(méi)有_id這個(gè),
對(duì)了這就是MongoDB自動(dòng)給我們添加到系統(tǒng)唯一標(biāo)識(shí)"_id" 是一個(gè)ObjectId 類(lèi)型,我們會(huì)在數(shù)據(jù)類(lèi)型中第一個(gè)說(shuō)到他(MongoDB 之 數(shù)據(jù)類(lèi)型 最無(wú)聊! But 最有用! MongoDB - 3)
findOne()無(wú)條件查找一條數(shù)據(jù),默認(rèn)當(dāng)前Collection中的第一條數(shù)據(jù)
findOne({age:19}) : 條件查找一條age等于19的數(shù)據(jù),如有多條數(shù)據(jù)則返回更靠前的數(shù)據(jù)
查詢(xún)數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)了有些數(shù)據(jù)出現(xiàn)錯(cuò)誤了,要修改怎么辦呢?
?
四.MongoDB 之 修改數(shù)據(jù)(update updateOne updateMany) 之 跟insert一樣,不推薦update的寫(xiě)法
update({"name":"DragonFire"},{$set:{"age":21}}):根據(jù)條件修改該條數(shù)據(jù)的內(nèi)容
把name等于DragonFire中的age改為21,這里要注意的是({"條件"},{"關(guān)鍵字":{"修改內(nèi)容"}}),其中如果條件為空,那么將會(huì)修改Collection中所有的數(shù)據(jù)
關(guān)于$set關(guān)鍵字的解釋就是,本節(jié)最后再說(shuō),留個(gè)懸念
updateOne({"age":19},{$set:{"name":"WSSB"}}):根據(jù)條件修改一條數(shù)據(jù)的內(nèi)容,如出現(xiàn)多條,只修改最高前的數(shù)據(jù)
把a(bǔ)ge等于19的所有數(shù)據(jù)中第一條數(shù)據(jù)的name改為WSSB
updateMany({"age":19},{$set:{"name":"pig_qi"}}):根據(jù)條件修改所有數(shù)據(jù)的內(nèi)容,多條修改
把a(bǔ)ge等于19的所有數(shù)據(jù)中的name改為WSSB
上述中有一個(gè)$set的懸念,這個(gè)懸念呀,可能要留到再往后一些了
但是$set:{"name":"WSSB"}我還是要解釋一下: $set 是update時(shí)的關(guān)鍵字,表示我要設(shè)置name屬性的值為"WSSB"
那么我們之前說(shuō)過(guò)MongoDB的靈活性,沒(méi)有就代表我要?jiǎng)?chuàng)建,所以說(shuō)如果該條Documents沒(méi)有name屬性,他就會(huì)自動(dòng)創(chuàng)建一個(gè)name屬性并且賦值為"WSSB"
更改了半天,我覺(jué)得,這些數(shù)據(jù)我都不想要了,該怎么辦呢?
?
四.MongoDB? 之? 刪除數(shù)據(jù)(remove) 之 如果你什么都不寫(xiě),你講失去全部的生命力
remove({}):無(wú)條件刪除數(shù)據(jù),這里要注意了,這是刪除所有數(shù)據(jù),清空Collection
當(dāng)然了,我現(xiàn)在還不會(huì)操作,你看到的截圖是我全部都寫(xiě)完之后的截圖,如果跟著操作的話(huà),那么你實(shí)在是太傻了,哈哈哈哈哈哈哈哈
?
如果你的數(shù)據(jù)全沒(méi)了,那么請(qǐng)?jiān)倬毩?xí)一次insertMany([{"name":"DragonFire"}])吧,你多練習(xí)一次,總比馬上忘記要強(qiáng)吧
remove({"name":"DragonFire"}) : 條件刪除name等于"DragonFire"的所有Document
那么到這里呢,增刪改查就已經(jīng)完事兒了
之后我們來(lái)說(shuō)一下MongoDB的數(shù)據(jù)類(lèi)型,跟你們透漏一下,MongoDB的數(shù)據(jù)類(lèi)型,老(te)有(bie)意(wu)思(liao)了
?
轉(zhuǎn)載于:https://www.cnblogs.com/itzhangxuhui/p/11263164.html
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的MongoDB 之 手把手教你增删改查 MongoDB - 2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: django的from组件
- 下一篇: Excel中文字换行