勵志成為全棧工程師的我今天了解了下Mongodb這種非結(jié)構(gòu)性數(shù)據(jù)庫台诗。接下來我會盡量詳細的介紹這種數(shù)據(jù)庫的基礎(chǔ)用法(增刪改查)愤兵。
簡介:
NOSQL顧名思義就是一種非結(jié)構(gòu)型的數(shù)據(jù)庫热凹,它沒有沒有行泵喘、列的概念。用JSON來存儲數(shù)據(jù)碌嘀。
集合就相當于“表”涣旨,文檔就相當于“行”。文檔就是JSON股冗,上下文語境中,也是JavaScript范疇和蚪,所以我們的數(shù)據(jù)庫也是JS范疇的東西止状,JS全棧。
我們要使用mongodb數(shù)據(jù)庫攒霹,首頁我們得去官網(wǎng)下載怯疤。至于如何下載樓主就不詳細講了,相信大家都有這種能力催束。官網(wǎng)和手冊地址我會給大家:
官網(wǎng):https://www.mongodb.com/
手冊:https://docs.mongodb.com/manual/
謹記:下載完mongodb,我們要將存放mongodb執(zhí)行文件的路徑添加到系統(tǒng)的環(huán)境變量中集峦。這樣的話,我們就可以在cmd中的任何盤符下去使用mongodb數(shù)據(jù)庫的命令抠刺。對于初學者塔淤,學會命令是很重要的。當然樓主也會給大家介紹一個可視化的工具速妖,去操作數(shù)據(jù)庫高蜂。好了,話不多說罕容,接下來就開始介紹如何使用mongodb數(shù)據(jù)庫备恤。
打開我們的cmd:輸入mongod --dbpath f:\mong
這條命令的意思就是開啟數(shù)據(jù)庫稿饰。--dbpath f:\mong 的意思就是將數(shù)據(jù)庫數(shù)據(jù)存放的路徑。
切記:一定要保持露泊,開機這個CMD不能動了喉镰,不能關(guān),不能ctrl+c惭笑。 一旦這個cmd有問題了梧喷,數(shù)據(jù)庫就自動關(guān)閉了。
然后我們再開一個cmd脖咐。輸入
那么我們已經(jīng)連接了開啟的數(shù)據(jù)庫铺敌。接下的運行環(huán)境就是mongo的語法了。
列出所有數(shù)據(jù)庫:show dbs
使用某個數(shù)據(jù)庫:use 數(shù)據(jù)庫名字
如果想新建數(shù)據(jù)庫屁擅,也是use偿凭。use一個不存在的,就是新建派歌。
查看當前所在數(shù)據(jù)庫:db
接下來我開始介紹數(shù)據(jù)庫的增刪改查弯囊。
插入數(shù)據(jù):db.information.insert({"name":"xiaoming","age":20})
information就是所謂的集合。集合中存儲著很多json胶果。
information是第一次使用匾嘱,集合將自動創(chuàng)建。
刪除數(shù)據(jù)庫早抠,刪除當前所在的數(shù)據(jù)庫: db.dropDatabase()
我們不可能一條一條的insert霎烙。所以,我們希望用sublime在外部寫好數(shù)據(jù)庫的形式蕊连,然后導(dǎo)入數(shù)據(jù)庫:
mongoimport --db student --collection information--drop --file C:\Users\machenike\Desktop\mongodb\1.json
-db student 想往哪個數(shù)據(jù)庫里面導(dǎo)入
--collection information想往哪個集合中導(dǎo)入
--drop 把集合清空
--file C:\Users\machenike\Desktop\mongodb\1.json 哪個文件
查找數(shù)據(jù):
查找數(shù)據(jù)悬垃,用find。find中沒有參數(shù)甘苍,那么將列出這個集合的所有文檔: db.restaurants.find()
精確匹配:db.information.find({"age":20});
多個條件:db.information.find({"name":"xiaoming" , "age":20})
大于條件:db.information.find({"age":{$gt:10}})
或者尝蠕。尋找所有年齡是9歲,或者11歲的學生 :db.information.find({$or:[{"age":9},{"age":11}]})
查找完畢之后载庭,打點調(diào)用sort看彼,表示升降排序:db.information.find().sort( { "age": 1 } )
修改數(shù)據(jù)
修改里面還有查詢條件。你要該誰囚聚,要告訴mongo靖榕。
查找名字叫做小明的,把年齡更改為16歲:db.student.update({"name":"小明"},{$set:{"age":16}})
查找數(shù)學成績是70靡挥,把年齡更改為33歲:db.student.update({"score.shuxue":70},{$set:{"age":33}})
更改所有匹配項目:"db.student.update({"sex":"男"},{$set:{"age":33}},{multi: true})
完整替換序矩,不出現(xiàn)$set關(guān)鍵字了:db.student.update({"name":"小明"},{"name":"大明","age":16})
刪除數(shù)據(jù)
db.information.remove( { "name": "xiaoming" } )
敲了這么多的命令,相信大家也都煩了跋破,接下來我就介紹一款可視化的工具Robomongo
希望通過這篇文章大家能對非結(jié)構(gòu)型的數(shù)據(jù)庫有所了解簸淀,后期我會推出nodeJS與mongodb的開發(fā)案例瓶蝴,感謝您的閱讀!W饽弧舷手!