MongoDB泛覽

數(shù)據(jù)庫相關(guān)

數(shù)據(jù)庫安裝和配置


安裝之后需要配置環(huán)境變量郑藏;
驗(yàn)證:mongo命令是否有效
啟動(dòng)服務(wù)端:

  • C:User\Admintor(任意地址)> mongod --dbpath D:\DevelopSoft\mongolog;
    說明:--dbpath 就是選擇數(shù)據(jù)庫文檔所在的文件夾,后面還可以附加--port 端口號(hào)從而指定啟動(dòng)端口(否則默認(rèn)是27017)
  • 如果在c盤根目錄下新建data/db兩級(jí)目錄镊辕,則可以直接使用mongod啟動(dòng)數(shù)據(jù)庫,但是如果這兩級(jí)目錄不存在則報(bào)錯(cuò)
  • mongod:是開啟數(shù)據(jù)庫,不能關(guān)閉,一旦這個(gè)cmd關(guān)閉了牛,數(shù)據(jù)庫就關(guān)閉了
  • 啟動(dòng)客戶端:然后另外開啟一個(gè)cmd,運(yùn)行mongo連接數(shù)據(jù)庫

查看


查看當(dāng)前數(shù)據(jù)庫名稱:db
查看所有數(shù)據(jù)庫:show dbs
切換數(shù)據(jù)庫:use 數(shù)據(jù)庫名稱 (如果數(shù)據(jù)庫不存在辰妙,則指向數(shù)據(jù)庫鹰祸,但不創(chuàng)建
直到插入數(shù)據(jù)或創(chuàng)建集合時(shí)數(shù)據(jù)庫才被創(chuàng)建)
默認(rèn)數(shù)據(jù)庫為test,如果你沒有創(chuàng)建新的數(shù)據(jù)庫密浑,集合將存放在test數(shù)據(jù)庫中
刪除數(shù)據(jù)庫:db.dropDatabase() 刪除的時(shí)當(dāng)前數(shù)據(jù)庫


結(jié)構(gòu)說明


數(shù)據(jù)庫->集合collection(可以多個(gè))->文檔document(可以多個(gè),文檔和文檔之間沒有聯(lián)系)

集合相關(guān)

創(chuàng)建集合


db.createCollection(name,options)
name時(shí)要?jiǎng)?chuàng)建的集合的名稱
options是一個(gè)文檔蛙婴,用于指定集合的配置,但是此配置可以沒有尔破,就代表無限制


限制集合大小


db.createCollection("sub",{capped:true,size:10})
capped :默認(rèn)是false表示不設(shè)置上限街图,值true表示設(shè)置上限
size: 當(dāng)capped值為true時(shí),需要指定此參數(shù)呆瞻,表示上限大小焊傅,當(dāng)文檔達(dá)到上限
時(shí)柴我,會(huì)將之前的數(shù)據(jù)覆蓋,單位為字節(jié)

查看當(dāng)前數(shù)據(jù)庫的集合

show collections

刪除

db.集合名稱.drop()


數(shù)據(jù)類型


Object ID:文檔id 不需要維護(hù)期贫,作為主鍵
String:字符串梳星,必須是有效的utf-8
Boolean:存儲(chǔ)一個(gè)布爾值 true或false
Integer:整數(shù)可以是32或64位赞赖,這取決于服務(wù)器
Double:存儲(chǔ)浮點(diǎn)數(shù)
Arrays:數(shù)組或列表,多個(gè)值存儲(chǔ)到一個(gè)鍵
Object:用于嵌入式的文檔冤灾,即一個(gè)值為一個(gè)文檔
Null:存儲(chǔ)null值
Timestamp:時(shí)間戳
Date:存儲(chǔ)當(dāng)前日期或時(shí)間的UNIX時(shí)間格式


插入

  • 插入一個(gè)文檔對(duì)象/只能是一個(gè)對(duì)象
    db.colletion.insertOne()
  • 插入多個(gè)文檔對(duì)象/只能是數(shù)組
    db.colletion.insertMany()
  • 插入一個(gè)或者多個(gè)/數(shù)組或者對(duì)象
    db.colletion.insert()
db.集合名稱.insert(document)
插入文檔時(shí)候前域,如果不指定_id參數(shù),mongdb會(huì)為文檔分配一個(gè)唯一的objectid
案例:
栗子1:db.stu.insert({name:'a',gender:1})
栗子2:
s1={_id:'20160101',name:'hr'}
s1.gender=0
db.stu.insert(s1)
# 插入多個(gè)(傳入的是數(shù)組)
db.hehe.insert([{info:"asa"},{name:"asas"}])



# 簡單查詢
db.集合名稱.find()
- 查詢韵吨,如果多個(gè)則只顯示第一個(gè)
db.colletion.findOne({name:"b"})
- 查詢匿垄,返回的是數(shù)組,所以可以利用[]索引
db.colletion.find({name:"b"})[0]
- 還可以在find的結(jié)果后面加上归粉,count()/length()等方法
db.colletion.find({name:"b"}).length()

# 更新
db.集合名稱.update(
    <query>,
    <update>,
    {multi:<boolean>}
)
參數(shù)query:查詢條件椿疗,類似sql語句update中的where部分
參數(shù)update:更新操作符,類似sql語句中的set部分
參數(shù)multi:可選糠悼,默認(rèn)是false届榄,表示只更新找到的第一條記錄,值為true表示條件滿足的全部更新
- 默認(rèn)會(huì)使用新對(duì)象替換舊對(duì)象(默認(rèn)只會(huì)替換一個(gè))倔喂,此時(shí)參數(shù)二替換了參數(shù)一在數(shù)據(jù)庫中
db.colletion.update({name:"b"},{age:20})
解決方案1:這樣就只會(huì)更新對(duì)應(yīng)的屬性铝条,還不是替換
db.colletion.update({name:"b"},{$set:{age:20})
解決方案2:或者使用replaceOne,其不會(huì)整體替換
db.collection.replaceOne({name:"sdc"},{name:"sdasa"})
- 只修改第一個(gè)符合條件的文檔
db.colletion.updateOne()
- 同時(shí)修改符合多個(gè)條件的文檔
db.colletion.updateMany()



栗子1:全文檔更新,參數(shù)一為空靖苇,表示全部數(shù)據(jù)都匹配
db.stu.update({},{name:'mnc'})
此時(shí)只修改了第一條,但是第一條數(shù)據(jù)整個(gè)文檔結(jié)構(gòu)都變了
例如:修改前時(shí){"_id":ObjectId("523bjj24bk23"),"name":"gj1","gender":true}
修改之后:{"_id":ObjectId("523bjj24bk23"),"name":"gj1"}

為了避免上面的情況,通過$set進(jìn)行指定屬性的更新
先插入一條數(shù)據(jù):db.stu.insert({name:"hr",gender:0})
修改:db.stu.update({name:'hr'},{$set:{name:'hys'}})
這樣修改就不會(huì)造成班缰,整個(gè)文檔的改變

修改多條匹配到的數(shù)據(jù)
db.stu.update({},{$set:{gender:0}},{multi:true})

- $unset是根據(jù)參數(shù)一匹配贤壁,然后刪除匹配到的第一條的name:"asdcjnacsasca"屬性,注意不是刪除整條埠忘,而且只匹配第一條age:20的document
db.colletion.update({age:20},{$unset:{name:"asdcjnacsasca"}})

保存


db.集合名稱.save(document)
如果文檔的_id已經(jīng)存在則是修改芯砸,如果文檔_id不存在則添加
栗子:db.stu.save({_id:'20160102','name':'zq',gender:1})


刪除

db.集合名稱.remove(
    <query>,
    {
        justOne:<boolean>
    }
)
query:可選,刪除的文檔的條件
justOne:可選给梅,如果設(shè)為true或1假丧,則只刪除一條,默認(rèn)false动羽,刪除多條
栗子:
刪除第一條:db.stu.remove({gender:0},{justOne:true})
全部刪除:
db.stu.remove({}) 一條條刪除包帚,性能低
db.stu.drop()  整體刪除,性能高

- 只刪除一個(gè)符合條件的文檔
- db.collection.deleteOne()
- 刪除所有符合的文檔
db.collection.deleteMany()

查詢


db.集合名稱.find({條件文檔})
db.集合名詞.findOne({條件文檔}) 只返回第一個(gè)
db.集合名稱.find({條件文檔}).pretty() 將結(jié)果格式化


補(bǔ)充

- 多級(jí)結(jié)構(gòu)
db.hehe.insert(
    [
        {
            name:"asads",
            fav:{
                movie:["a","b"]
            }
        }
    ]
)
- 給movie新加一個(gè)"星際穿越"
db.hehe.update({name:"asads"},{$push:{
    "fav.movie":"星際穿越"
}})
說明:$set是整體替換运吓,但是此時(shí)想新增渴邦,所以使用$push
還有Bson支持.的形式調(diào)用,但是必須被“”包裹起來拘哨。
同理還有$pop,$pull,$addToSet(和$set相似谋梭,但是不能重復(fù)添加)),$pushAll.$pullAll
圖一.png
  • 插入兩萬條數(shù)據(jù)
    var infos=[]
    for(var i=0;i<20000;i++){
    infos.push({age:i})
    }
    db.hehe.insert(infos)
    這樣想比與一條條插入性能高了很多

  • 查詢年紀(jì)在20和50之間的數(shù)據(jù)
    db.hehe.find({age:{gt:20,lt:50}})

  • 修改年紀(jì)為1的數(shù)據(jù)增加20(如果減20則age:-20即可)
    db.hehe.updateMany({age:1},{$inc:{age:20}})

運(yùn)算符


等于 默認(rèn)是等于判斷,沒有運(yùn)算符
小于lt 小于等于lte
大于 gt 大于等于gte
不等于 ne 栗子:查詢年齡大于或等于18 的學(xué)生 db.stu.find({age:{gte:18}})


邏輯運(yùn)算符


查詢時(shí)可以有多個(gè)條件倦青,多個(gè)條件之間需要通過邏輯運(yùn)算符連接
邏輯與:默認(rèn)是邏輯與的關(guān)系
栗子:查詢年級(jí)大于等于18瓮床,并且性別為1的學(xué)生
db.stu,find({age:{$gte:18},gender:1})

邏輯或:使用or 查詢年級(jí)大于18,或性別為0的學(xué)生 db.stu.find({or:[{age:{$gt:18}},{gender:1}]})

and和or一起使用
查詢年齡大于18或性別為0的學(xué)生产镐,并且學(xué)生的姓名為gj
db.stu.find({or:[{age:{gt:18}},{gender:1}],{name:'gj'})


范圍運(yùn)算符


使用in(或),nin判斷是否在某個(gè)范圍
查詢年齡為18,28的學(xué)生,注意不是區(qū)間隘庄,指的是18/28只要有一個(gè)就符合
db.stu.find({age:{$in:[18,28]}})


全部匹配all


使用all(且),代表全部匹配癣亚,必須18,28兩個(gè)數(shù)據(jù)都匹配上丑掺,剛好和上面的in是一個(gè)是或一個(gè)是且 db.stu.find({age:{all:[18,28]}})


正則表達(dá)式


使用//或regex編寫正則表達(dá)式 查詢姓黃的學(xué)生 db.stu.find({name:/^黃/}) db.stu.find({name:{regex:'^黃'}})


自定義查詢


使用where后面寫一個(gè)函數(shù),返回滿足條件的數(shù)據(jù) 查詢年級(jí)大于30的學(xué)生 db.stu.find({where:function(){return this.age>20}})


數(shù)據(jù)查詢


方法limit():用于讀取指定數(shù)量的文檔
db.集合名稱.find().limit(number)
參數(shù)number表示要獲取的文檔的條數(shù)述雾,如果不指定則顯示所有
查詢2條學(xué)生的數(shù)據(jù)
db.stu.find().limit(2)

方法skip():用于跳過指定數(shù)量的文檔
db.集合名稱.find().skip(number)
參數(shù)number表示跳過的記錄條數(shù)街州,默認(rèn)是0
查詢從第三條開始的學(xué)生信息
db.stu.find().skip(2)

上面兩個(gè)可以一起使用,不分先后順序
查詢第5至8條數(shù)據(jù)
db.stu.find().limit(4).skip(5)或
db.stu.find().skip(5).limit(4)


投影


在查詢到得返回結(jié)果中玻孟,只選擇必要得字段唆缴,而不是選擇一個(gè)文檔的整個(gè)字段
參數(shù)為字段與值,值為1表示顯示取募,值為0不顯示
db.集合名稱.find({},{字段名稱:1,.....})


排序


db.集合名稱.find().sort({字段:1,....})
參數(shù)1為升序排列
參數(shù)-1為降序排列
栗子:db.stu.find().sort({gender:-1,age:-1})


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


方法count()用于統(tǒng)計(jì)結(jié)果集中文檔條數(shù)
db.集合名稱.find({條件}).count()
或者
db.集合名稱.count({條件})


消除重復(fù)


方法distinct()對(duì)數(shù)據(jù)去除重復(fù)
db.集合名稱.distinct('去重字段',{條件})
栗子:查找年齡大于18的性別(去重)
db.stu.distinct(gender,{age:{$gt:18}} )


高級(jí)操作

聚合 aggregate


db.集合名稱.aggregate([{管道:{表達(dá)式}])
常用管道:
group:將集合中的文檔分組琐谤,可用于統(tǒng)計(jì)結(jié)果match: 過濾數(shù)據(jù),只輸出符合條件的文檔
project:修改輸入文檔的結(jié)構(gòu)玩敏,如重命名斗忌、增加质礼、刪除、創(chuàng)建計(jì)算結(jié)果sort:將輸入文檔排序后輸出
limit:限制聚合管道返回的文檔數(shù)skip:跳過指定數(shù)量的文檔织阳,并返回余下的文檔
$unwind:將數(shù)組類型的字段進(jìn)行拆分


針對(duì)Mongodb4.x

安裝

  • 新增選擇是網(wǎng)絡(luò)用戶還是本地用戶
  • 會(huì)選擇log文件夾和文件文件夾
  • 而且會(huì)注冊(cè)系統(tǒng)服務(wù)眶蕉,不需要在mongod手動(dòng)開啟服務(wù)端

Mongdb賬戶權(quán)限配置

默認(rèn)是全部開啟,不需要用戶名和密碼唧躲,不安全

  • 創(chuàng)建超級(jí)管理員
use admin
db.createUser({
    user:'admin',
    pwd:'123456',
    roles:[{role:'root',db:'admin'}]
})
  • 修改Mongodb數(shù)據(jù)庫配置文件

D:\DevelopSoft\MongoDB\bin\mongod.cfg

  • 配置:默認(rèn)
如下開啟后造挽,才必須要求通過賬號(hào)密碼鏈接,mongodb默認(rèn)是可以直接鏈接的
security:
     authorization: enabled 注意空格和編碼以及換行符
  • 修改配置文件后重新啟動(dòng)mongodb服務(wù)
  • 使用超級(jí)管理員連接數(shù)據(jù)庫

mongo admin -u 用戶名 -p 密碼
mongo 192.168.0.117:27017/test -u user -p password //遠(yuǎn)程連接

  • 創(chuàng)建指定用戶弄痹,只能訪問指定數(shù)據(jù)庫
use zengqiangdb
db.createUser({
    user:'zengqiang',
    pwd:'123456',
    roles:[{role:'dbOwner',db:'zengqiangdb'}]
})

數(shù)據(jù)庫角色

  • 數(shù)據(jù)庫用戶角色: read readWriter
  • 數(shù)據(jù)庫管理角色: dbAdmin dbOwner userAdmin
  • 集群管理角色: clusterAdmin clusterManager cluserMonitor hostManager
  • 備份恢復(fù)角色: backup restore
  • 所有數(shù)據(jù)庫角色: readAnyDatabase readWriteAnyDatabase userAdminAnyDatabase dbAdminAnyDatabase
  • 超級(jí)用戶角色: root

相關(guān)命令

  • show users:查看當(dāng)前庫的管理員
  • db.dropUser("zengqiang"):刪除管理員
  • db.updateUser("zengqiang",{pwd:"password"}):修改用戶密碼
  • db.auth("admin","password"):密碼認(rèn)證

例如:直接mongo admin連接不輸入任何密碼則show dbs是無效的饭入,此時(shí)可以通過密碼認(rèn)證完成密碼認(rèn)證再show dbs等操作即可有效

Linux相關(guān)

Mongodb4.x 安裝

  1. 配置 yum 源


  1. yum 安裝 mongodb(會(huì)安裝 mongodb-org 包及其依賴包mongodb-org-server肛真、mongodb-org-mongos谐丢、mongodb-org-shell、mongodb-org-tools)

數(shù)據(jù)庫實(shí)例默認(rèn)在/var/lib/mongo 路徑下蚓让,日志默認(rèn)在/var/log/mongodb 路徑下乾忱,也可以通過修改配置文件/etc/mongod.conf 文件的 storage.dbPath 和 systemLog.path 配置


  1. 安裝 mongodb
    • yum install -y mongodb-org
  2. 開啟 mongodb 服務(wù)
    • systemctl start mongod
  3. 設(shè)置開機(jī)啟動(dòng) mongodb
    • systemctl enable mongod
  4. 停止 mongodb 服務(wù)
    • systemctl stop mongod
  5. 重啟 mongodb 服務(wù)
    • systemctl restart mongod

Mongodb4.x 卸載


  1. 停止服務(wù)
    • service mongod stop
  2. 刪除安裝的包
    • rpm -qa | grep mongodb-org 列出所有的包
    • yum remove -y $(rpm -qa | grep mongodb-org)
  3. 刪除數(shù)據(jù)及日志
    • rm -r /var/log/mongodb
    • rm -r /var/lib/mongo

遠(yuǎn)程連接 mongodb


  1. 修改 mongo.conf 文件
  • 命令:sudo vi /etc/mongod.conf
  • 將原來 bindIp:127.0.0.1 修改為 0.0.0.0
  • (mongodb 的配置文件中的 bind_ip 默認(rèn)為 127.0.0.1,默認(rèn)只有本機(jī)可以連接历极。 此時(shí)窄瘟,需要將 bind_ip配置為 0.0.0.0,表示接受任何 IP 的連接趟卸。)
  1. 重啟動(dòng) mongo 服務(wù):service mongod restart
  2. 永久開放 27017 端口:
    • firewall-cmd --zone=public --add-port=27017/tcp --permanent ; (–permanent 永久生效蹄葱,沒有此參數(shù)重啟后
      失效
    • firewall-cmd --reload

mongodb數(shù)據(jù)庫的導(dǎo)出導(dǎo)入

在 Mongodb 中我們使用 mongodump 命令來備份 MongoDB 數(shù)據(jù)。該命令可以導(dǎo)出所有數(shù)據(jù)到指定目錄中衰腌。 mongodump 命令可以通過參數(shù)指定導(dǎo)出的數(shù)據(jù)量級(jí)轉(zhuǎn)存的服務(wù)器新蟆。使用 mongorestore 命令來恢復(fù)備份的數(shù)據(jù)。

導(dǎo)出:

mongodump -h dbhost -d dbname -o dbdirectory

導(dǎo)入:(dbName對(duì)應(yīng)數(shù)據(jù)庫不存在則會(huì)自動(dòng)創(chuàng)建)

mongorestore -h dbhost -d dbname <path>

如果開啟了用戶名驗(yàn)證

導(dǎo)入:

mongorestore -u admin -p 123456 -h dbhost -d --authenticationDatabase admin dbname <path>

其中--authenticationDatabase admin代表使用的權(quán)限等級(jí)

配置 Mongodb4.x 管理員密碼(自己查)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末右蕊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吮螺,更是在濱河造成了極大的恐慌饶囚,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸠补,死亡現(xiàn)場離奇詭異萝风,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)紫岩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門规惰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泉蝌,你說我怎么就攤上這事歇万】纾” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵贪磺,是天一觀的道長硫兰。 經(jīng)常有香客問我,道長寒锚,這世上最難降的妖魔是什么劫映? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮刹前,結(jié)果婚禮上泳赋,老公的妹妹穿的比我還像新娘。我一直安慰自己喇喉,他們只是感情好摹蘑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著轧飞,像睡著了一般衅鹿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上过咬,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天大渤,我揣著相機(jī)與錄音,去河邊找鬼掸绞。 笑死泵三,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衔掸。 我是一名探鬼主播烫幕,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼敞映!你這毒婦竟也來了较曼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤振愿,失蹤者是張志新(化名)和其女友劉穎捷犹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冕末,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡萍歉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了档桃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枪孩。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔑舞,到底是詐尸還是另有隱情拒担,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布斗幼,位于F島的核電站澎蛛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蜕窿。R本人自食惡果不足惜谋逻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望桐经。 院中可真熱鬧毁兆,春花似錦、人聲如沸阴挣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畔咧。三九已至茎芭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間誓沸,已是汗流浹背梅桩。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拜隧,地道東北人宿百。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像洪添,于是被迫代替她去往敵國和親垦页。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第一章 前言 1.1 知識(shí)體系分析 前端工程師:Web前端干奢,也就是在Web應(yīng)用中用戶可以看得見碰得著的東西痊焊。包括W...
    whitsats閱讀 868評(píng)論 0 3
  • 簡介 NoSQL : 全名為Not Only SQL, 指的是非關(guān)系型的數(shù)據(jù)庫 隨著訪問量上升, 網(wǎng)站的數(shù)據(jù)庫性能...
    奮斗的老王閱讀 3,042評(píng)論 4 47
  • 1. MongoDB 簡介 MongoDB是一個(gè)可擴(kuò)展的高性能,開源律胀,模式自由宋光,面向文檔的NoSQL,基于分布式文...
    rhlp閱讀 1,117評(píng)論 0 3
  • MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫炭菌。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方...
    入戲半分笑閱讀 376評(píng)論 0 2
  • 1.express node Web應(yīng)用框架逛漫,提供了很多Web應(yīng)用和HTTP工具 使用express可以快速搭建一...
    昵稱不能太隨便閱讀 1,327評(píng)論 0 2