欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) mongodb的介紹

柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) mongodb的介紹

http://yzkb.51969.com/

1. mongodb的介紹

1.1 什么是mongodb

mongodb 是一個(gè)功能最豐富的NoSQL非關(guān)系數(shù)據(jù)庫(kù)。由 C++ 語(yǔ)言編寫。mongodb 本身提供S端存儲(chǔ)數(shù)據(jù),即server;也提供C端操作處理(如查詢等)數(shù)據(jù),即client。

1.2 SQL和NoSQL的主要區(qū)別

在SQL中層級(jí)關(guān)系: 數(shù)據(jù)庫(kù)>表>數(shù)據(jù)而在NoSQL中則是: 數(shù)據(jù)庫(kù)>集合>文檔

1.2.1 數(shù)據(jù)之間無(wú)關(guān)聯(lián)性

SQL中如何需要增加外部關(guān)聯(lián)數(shù)據(jù)的話,規(guī)范化做法是在原表中增加一個(gè)外鍵,關(guān)聯(lián)外部數(shù)據(jù)表。NoSQL則可以把外部數(shù)據(jù)直接放到原數(shù)據(jù)集中,以提高查詢效率。缺點(diǎn)也比較明顯,對(duì)關(guān)聯(lián)數(shù)據(jù)做更新時(shí)會(huì)比較麻煩。SQL中在一個(gè)表中的每條數(shù)據(jù)的字段是固定的。而NoSQL中的一個(gè)集合(表)中的每條文檔(數(shù)據(jù))的key(字段)可以是互不相同的。

1.2.2 拓展閱讀

https://www.cnblogs.com/jeakeven/p/5402095.html

1.3 mongodb作為非關(guān)系型數(shù)據(jù)庫(kù)相較于關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)勢(shì)

易擴(kuò)展: NoSQL數(shù)據(jù)庫(kù)種類繁多, 但是一個(gè)共同的特點(diǎn)都是去掉關(guān)系數(shù)據(jù)庫(kù)的關(guān)系型特性。 數(shù)據(jù)之間無(wú)關(guān)系, 這樣就非常容易擴(kuò)展

大數(shù)據(jù)量,高性能: NoSQL數(shù)據(jù)庫(kù)都具有非常高的讀寫性能, 尤其在大數(shù)據(jù)量下表現(xiàn)優(yōu)秀。 這得益于它的非關(guān)系性,數(shù)據(jù)庫(kù)的結(jié)構(gòu)簡(jiǎn)單

靈活的數(shù)據(jù)模型: NoSQL無(wú)需事先為要存儲(chǔ)的數(shù)據(jù)建立字段, 隨時(shí)可以存儲(chǔ)自定義的數(shù)據(jù)格式。 而在關(guān)系數(shù)據(jù)庫(kù)中, 增刪字段是一件非常麻煩的事情。 如果是非常大數(shù)據(jù)量的表, 增加字段簡(jiǎn)直就是一個(gè)噩夢(mèng)

2. mongodb的安裝

以u(píng)buntu18.04為例

mongodb具有兩種安裝方式:命令安裝 或 源碼安裝

2.1 命令安裝

在ubuntu中使用apt-get工具安裝

sudo apt-get install -y mongodb-org

或參考官方文檔 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

2.2 源碼安裝

2.2.1 選擇相應(yīng)版本和操作系統(tǒng)并下載

https://www.mongodb.com/download-center/community?jmp=docs

2.2.2 解壓

tar -zxvf mongodb-linux-x86_64-ubuntu1804-4.0.3.tgz

2.2.3 移動(dòng)到/usr/local/目錄下

sudo mv -r mongodb-linux-x86_64-ubuntu1804-4.0.3/ /usr/local/mongodb

2.2.4 在shell的初始化腳本.bashrc中添加mongodb可執(zhí)行文件到環(huán)境變量PATH中

a. 進(jìn)入.bashrc文件中

cd ~

sudo vi .bashrc

b. 在.bashrc文件的最后添加:

export PATH=/usr/local/mongodb/bin:$PATH

3. mongodb的官方文檔

https://docs.mongodb.com/manual/introduction/

4. mongodb服務(wù)端的啟動(dòng)

默認(rèn)端口:27017默認(rèn)配置文件的位置:/etc/mongod.conf默認(rèn)日志的位置:/var/log/mongodb/mongod.log

mongodb服務(wù)端啟動(dòng)分別兩種方式:

本地測(cè)試方式的啟動(dòng)(只具有本地?cái)?shù)據(jù)增刪改查的功能)生產(chǎn)環(huán)境啟動(dòng)(具有完整的全部功能)

4.1 測(cè)試方式啟動(dòng)

啟動(dòng): sudo service mongod start (sudo service mongod start)停止: sudo service mongod stop重啟: sudo service mongod restart

4.2 生產(chǎn)環(huán)境正式的啟動(dòng)方式

啟動(dòng): sudo mongod [–auth --dbpath=dbpath --logpath=logpath --append --fork] [-–f logfile ]

只以 sudo mongod 命令啟動(dòng)時(shí),默認(rèn)將數(shù)據(jù)存放在了 /data/db 目錄下,需要手動(dòng)創(chuàng)建–dbpath: 指定數(shù)據(jù)庫(kù)的存放路徑–logpath: 指定日志的存放路徑–append: 或–logappend 設(shè)置日志的寫入形式為追加模式–fork: 或-fork 開啟新的進(jìn)程運(yùn)行mongodb服務(wù)–f: 或-f 配置文件路徑(可以將上述配置信息寫入文件然后通過(guò)該文件中的參數(shù)進(jìn)行加載啟動(dòng))–auth: 以權(quán)限認(rèn)證的方式啟動(dòng),我們會(huì)在后邊的課程中學(xué)習(xí)該內(nèi)容

4.3 查看是否啟動(dòng)成功

ps aux | grep mongod

啟動(dòng)mongodb的客戶端:進(jìn)入mongo shell

5. mongodb的簡(jiǎn)單使用

開啟mongodb server的情況下,在進(jìn)入mongo shell后,就可以做簡(jiǎn)單的使用了

啟動(dòng)mongodb的客戶端:進(jìn)入mongo shell

啟動(dòng)本地客戶端: mongo查看幫助:mongo –help退出:exit或者ctrl+c

5.1 mongodb數(shù)據(jù)庫(kù)的命令

查看當(dāng)前的數(shù)據(jù)庫(kù):db(沒(méi)有切換數(shù)據(jù)庫(kù)的情況下默認(rèn)使用test數(shù)據(jù)庫(kù))查看所有的數(shù)據(jù)庫(kù):show dbs /show databases切換數(shù)據(jù)庫(kù):use db_name

db_name為show dbs后返回的數(shù)據(jù)庫(kù)名 刪除當(dāng)前的數(shù)據(jù)庫(kù):db.dropDatabase()

5.2 mongodb集合的命令

無(wú)需手動(dòng)創(chuàng)建集合: 向不存在的集合中第一次添加數(shù)據(jù)時(shí),集合會(huì)自動(dòng)被創(chuàng)建出來(lái)手動(dòng)創(chuàng)建集合:

db.createCollection(name,options)db.createCollection(“stu”)db.createCollection(“sub”, { capped : true, size : 10 } )參數(shù)capped:默認(rèn)值為false表示不設(shè)置上限,值為true表示設(shè)置上限參數(shù)size:集合所占用的字節(jié)數(shù)。 當(dāng)capped值為true時(shí),需要指定此參數(shù),表示上限大小,當(dāng)文檔達(dá)到上限時(shí), 會(huì)將之前的數(shù)據(jù)覆蓋,單位為字節(jié) 查看集合:show collections刪除集合:db.集合名稱.drop()檢查集合是否設(shè)定上限: db.集合名.isCapped()

5.3 簡(jiǎn)單練習(xí)

在mongo shell中輸入下列命令,查看結(jié)果

show dbs

use test

show collections

db

db.stu.insert({'name':'郭靖', 'age':22})

show dbs

show collections

db.stu.find()

db.stu.drop()

show collections

db.dropDatabase()

show dbs

exit

5.4 mongodb中常見(jiàn)的數(shù)據(jù)類型(了解)

5.4.1 常見(jiàn)類型

Object ID: 文檔ID/數(shù)據(jù)的ID,數(shù)據(jù)的主鍵String: 字符串,最常用,必須是有效的UTF-8Boolean: 存儲(chǔ)一個(gè)布爾值,true或falseInteger: 整數(shù)可以是32位或64位,這取決于服務(wù)器Double: 浮點(diǎn)數(shù)Arrays: 數(shù)組/列表Object: mongodb中的一條數(shù)據(jù)/文檔,即文檔嵌套文檔Null: 存儲(chǔ)null值Timestamp: 時(shí)間戳,表示從1970-1-1到現(xiàn)在的總秒數(shù)Date: 存儲(chǔ)當(dāng)前日期或時(shí)間的UNIX時(shí)間格式

5.4.2 注意點(diǎn)

每個(gè)文檔都有一個(gè)屬性,為_id,保證每個(gè)文檔的唯一性,mongodb默認(rèn)使用_id作為主鍵

可以手動(dòng)設(shè)置_id的值,如果沒(méi)有提供,那么MongoDB為每個(gè)文檔提供了一個(gè)獨(dú)特的_id, 類型為objectID objectID是一個(gè)12字節(jié)的十六進(jìn)制數(shù),每個(gè)字節(jié)兩位,一共是24位的字符串:

前4個(gè)字節(jié)為當(dāng)前時(shí)間戳接下來(lái)3個(gè)字節(jié)的機(jī)器ID接下來(lái)的2個(gè)字節(jié)中MongoDB的服務(wù)進(jìn)程id最后3個(gè)字節(jié)是簡(jiǎn)單的增量值

6.增傷改查

小結(jié):

mongo shell中的增 db.集合名.insert({數(shù)據(jù)}) db.集合名.save({包含_id的完整數(shù)據(jù)}) # 根據(jù)指定的_id進(jìn)行保存,存在則更新,不存在則插入mongo shell中的刪 db.集合名.remove({條件}, {justOne: true/false})mongo shell中的改 db.集合名.update({條件}, {$set:{完整數(shù)據(jù)/部分字段}}, {multi: true/false})mongo shell中的查 db.集合名.find({條件}, {字段投影})

6.1.1 mongodb插入數(shù)據(jù)

命令:db.集合名稱.insert(document)

db.stu.insert({name:'gj', gender:1})

db.stu.insert({_id:"20170101", name:'gj', gender:1})

插文檔時(shí),如果不指定_id參數(shù),MongoDB會(huì)為文檔自動(dòng)分配一個(gè)唯一的ObjectId

6.1.2. mongodb的保存

命令:db.集合名稱.save(document)

db.stu.save({_id:'20170101', name:'gj', gender:2})

db.stu.save({name:'gj', gender:2})

db.stu.find()

如果文檔的_id已經(jīng)存在則修改,如果_id不存在則添加

6.2 mongodb的查詢

命令:db.集合名稱.find()

可以使用以下數(shù)據(jù)進(jìn)行練習(xí)

db.stu.insert([{"name" : "郭靖", "hometown" : "蒙古", "age" : 20, "gender" : true },

{"name" : "黃蓉", "hometown" : "桃花島", "age" : 18, "gender" : false },

{"name" : "華箏", "hometown" : "蒙古", "age" : 18, "gender" : false },

{"name" : "黃藥師", "hometown" : "桃花島", "age" : 40, "gender" : true },

{"name" : "段譽(yù)", "hometown" : "大理", "age" : 16, "gender" : true },

{"name" : "段王爺", "hometown" : "大理", "age" : 45, "gender" : true },

{"name" : "洪七公", "hometown" : "華箏", "age" : 18, "gender" : true }])

6.2.1 簡(jiǎn)單查詢

方法find(): 查詢 db.集合名稱.find({條件文檔}) 方法findOne():查詢,只返回第一個(gè) db.集合名稱.findOne({條件文檔}) 方法pretty(): 將結(jié)果格式化;不能和findOne()一起使用! db.集合名稱.find({條件文檔}).pretty()

6.2.2 比較運(yùn)算符

等于: 默認(rèn)是等于判斷, 沒(méi)有運(yùn)算符小于:$lt (less than)小于等于:$lte (less than equal)大于:$gt (greater than)大于等于:$gte不等于:$ne

查詢年齡大于18的所有學(xué)生

db.stu.find({age:{$gte:18}})

6.2.3 邏輯運(yùn)算符

邏輯運(yùn)算符主要指與、或邏輯

and:在json中寫多個(gè)條件即可

查詢年齡大于或等于18, 并且性別為true的學(xué)生

db.stu.find({age:{$gte:18},gender:true})

or:使用$or, 值為數(shù)組, 數(shù)組中每個(gè)元素為json

查詢年齡大于18, 或性別為false的學(xué)生

db.stu.find({$or:[{age:{$gt:18}},{gender:false}]})

查詢年齡大于18或性別為男生, 并且姓名是郭靖

db.stu.find({$or:[{age:{$gte:18}},{gender:true}],name:'gj'})

6.2.4 范圍運(yùn)算符

使用$in, $nin 判斷數(shù)據(jù)是否在某個(gè)數(shù)組內(nèi)

查詢年齡為18、 28的學(xué)生

db.stu.find({age:{$in:[18,28,38]}})

6.2.5 支持正則表達(dá)式

使用$regex編寫正則表達(dá)式

查詢name以'黃'開頭的數(shù)據(jù)

db.stu.find({name:{$regex:'^黃'}})

6.2.6 自定義查詢

mongo shell 是一個(gè)js的執(zhí)行環(huán)境 使用$where 寫一個(gè)函數(shù), 返回滿足條件的數(shù)據(jù)

查詢年齡大于30的學(xué)生

db.stu.find({

$where:function() {

return this.age>30;}

})

6.2.7 skip和limit

方法limit(): 用于讀取指定數(shù)量的文檔

db.集合名稱.find().limit(NUMBER)

查詢2條學(xué)生信息

db.stu.find().limit(2)

方法skip(): 用于跳過(guò)指定數(shù)量的?檔

db.集合名稱.find().skip(NUMBER)

db.stu.find().skip(2)

同時(shí)使用

db.stu.find().limit(4).skip(5)

db.stu.find().skip(5).limit(4)

注意:先使用skip在使用limit的效率要高于前者

6.2.8 投影

在查詢到的返回結(jié)果中, 只選擇必要的字段

命令:db.集合名稱.find({},{字段名稱:1,...})

參數(shù)為字段與值, 值為1表示顯示, 值為0不顯 特別注意:

對(duì)于_id列默認(rèn)是顯示的, 如果不顯示需要明確設(shè)置為0對(duì)于其他不顯示的字段不能設(shè)置為0

db.stu.find({},{_id:0,name:1,gender:1})

6.2.9 排序

方法sort(), 用于對(duì)查詢結(jié)果按照指定的字段進(jìn)行排序

命令:db.集合名稱.find().sort({字段:1,...})

參數(shù)1為升序排列 參數(shù)-1為降序排列

根據(jù)性別降序, 再根據(jù)年齡升序

db.stu.find().sort({gender:-1,age:1})

6.2.10 統(tǒng)計(jì)個(gè)數(shù)

方法count()用于統(tǒng)計(jì)結(jié)果集中文檔條數(shù)

命令:db.集合名稱.find({條件}).count() 命令:db.集合名稱.count({條件})

db.stu.find({gender:true}).count()

db.stu.count({age:{$gt:20},gender:true})

6.3mongodb的更新

db.集合名稱.update({query}, {update}, {multi: boolean})

參數(shù)query:查詢條件參數(shù)update:更新操作符參數(shù)multi:可選,默認(rèn)是false,表示只更新找到的第一條數(shù)據(jù),值為true表示把滿足條件的數(shù)據(jù)全部更新

db.stu.update({name:'hr'},{name:'mnc'}) # 全文檔進(jìn)行覆蓋更新

db.stu.update({name:'hr'},{$set:{name:'hys'}}) # 指定鍵值更新操作

db.stu.update({},{$set:{gender:0}},{multi:true}) # 更新全部

注意:“multi update only works with $ operators”

multi參數(shù)必須和$set一起使用!

6.4mongodb的刪除

db.集合名稱.remove({query}, {justOne: boolean})

- 參數(shù)query:可選,刪除的?檔的條件

- 參數(shù)justOne:可選, 如果設(shè)為true或1,則只刪除一條,默認(rèn)false,表示刪除全部

柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) mongodb的介紹

http://yzkb.51969.com/

精彩文章

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18968398.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄