MongoDB 入坑

MongoDB

1. 什么是MongoDB

分布式文件存儲數(shù)據(jù)庫,屬于NoSQL之一
基于BSON格式做數(shù)據(jù)存儲和處理
適合數(shù)據(jù)項多變的記錄,存儲結(jié)構(gòu)靈活
便于擴(kuò)展和使用,支持索引橄浓、查詢、事務(wù)(最新版)
支持Java亮航、PHP贮配、Python等多種語言

2. 啟動MongoDB

2.1 啟動相關(guān)服務(wù)
mongod --dbpath C:\mongodb\db --logpath C:\mongodb\log\4.28.log --port 27017

驗證服務(wù)是否啟動

訪問 http://localhost:27017

It looks like you are trying to access MongoDB over HTTP on the native driver port.

服務(wù)啟動成功

2.2 啟動客戶端

在添加了Path路徑之后在cmd中輸入

mongo

3. DB相關(guān)命令

3.1 顯示所有數(shù)據(jù)庫信息
> show dbs;
admin            0.000GB
config           0.000GB
flashexpresslog  0.000GB
local            0.000GB
3.2 切換數(shù)據(jù)庫

使用Use命令, 可以切換到已存在的數(shù)據(jù)庫, 也可以切換到不存在的數(shù)據(jù)庫, 若切換到不存在的數(shù)據(jù)庫, 這個數(shù)據(jù)庫在內(nèi)存中將要被創(chuàng)建

> use admin
switched to db admin
3.3 查看當(dāng)前所在的數(shù)據(jù)庫
> db
admin
3.4 創(chuàng)建數(shù)據(jù)庫

MongoDB是弱類型的, 需要在DB中添加集合或文檔, 然后數(shù)據(jù)庫會自動創(chuàng)建

3.4.1 通過常見集合創(chuàng)建數(shù)據(jù)庫
> use test
switched to db test
> db.createCollection('collection1')
{ "ok" : 1 }
3.4.2 通過創(chuàng)建文檔來創(chuàng)建數(shù)據(jù)庫

沒有數(shù)據(jù)庫則創(chuàng)建數(shù)據(jù)庫, 沒有collection1集合則創(chuàng)建該集合, 在該集合中插入一個空文檔

> db.collection1.insert({})
WriteResult({ "nInserted" : 1 })
3.5 刪除數(shù)據(jù)庫

先進(jìn)入要闡述的數(shù)據(jù)庫, 然后執(zhí)行對應(yīng)的刪除方法

> db.dropDatabase();
{ "dropped" : "test", "ok" : 1 }
3.6 查看幫助命令
> help
3.7 退出
> exit

4. Collection相關(guān)命令

4.1 查看DB中的集合
> show collections;
4.2 創(chuàng)建集合

方式一: 創(chuàng)建一個空集合

> db.createCollection("collect1");
{ "ok" : 1 }

方式二: 插入一個新文檔

> db.collection.insert({});
WriteResult({ "nInserted" : 1 })
4.3 刪除集合
> db.collection.drop();
true

注意
所有的命令, 都是以db開頭的

5. Document相關(guān)命令

相當(dāng)于MySQL中的DML語句: insert, update, delete, dql語句:select

5.1 增加相關(guān)

在插入文檔時, 如果沒有指定id, 系統(tǒng)會自動為我們添加一個主鍵, 這個主鍵是ObjectId類型的一個隨機(jī)數(shù)

> db.user.insert({uname:"mao1",age:18});
WriteResult({ "nInserted" : 1 })
> db.user.find();
{ "_id" : ObjectId("5eacc99385c16b1758c67b68"), "uname" : "mao1", "age" : 18 }

指定Id, 插入一條文檔

> db.user.insert({_id:1,uname:"mao2",age:28});
WriteResult({ "nInserted" : 1 })
> db.user.find();
{ "_id" : ObjectId("5eacc99385c16b1758c67b68"), "uname" : "mao1", "age" : 18 }
{ "_id" : 1, "uname" : "mao2", "age" : 28 }

插入多條數(shù)據(jù)就是一個數(shù)組

Save命令

也是作為插入使用, 但是跨界, 若指定了ID, 若該ID存在, 則更新該條數(shù)據(jù), 否則創(chuàng)建該數(shù)據(jù)

> db.user.save({_id:13,uname:"mao13",age:38});
WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 13 })
> db.user.save({_id:13,uname:"mao23",age:18});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
5.2 更新相關(guān)

待續(xù)

5.3 刪除相關(guān)

待續(xù)

5.4 查詢相關(guān)

待續(xù)

6. SpringBoot使用MongoDB

5.1 引入Jar包
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-mongodb</artifactId>
  <version>2.1.2.RELEASE</version>
</dependency>
5.2 配置參數(shù)
#mongodb
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=flashexpresslog
5.3 使用MongoDB
@Autowired
private MongoTemplate mongo;
@Override
    public void log(int userId, String ip) {
        //記錄用戶登錄日志信息
        LoginHistory loginHistory = new LoginHistory();
        loginHistory.setUserId(userId);
        loginHistory.setLoginTime(new Date());
        loginHistory.setIp(ip);
        mongo.save(loginHistory);
    }
}

待更

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市塞赂,隨后出現(xiàn)的幾起案子泪勒,更是在濱河造成了極大的恐慌,老刑警劉巖宴猾,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件圆存,死亡現(xiàn)場離奇詭異,居然都是意外死亡仇哆,警方通過查閱死者的電腦和手機(jī)沦辙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讹剔,“玉大人油讯,你說我怎么就攤上這事详民。” “怎么了陌兑?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵沈跨,是天一觀的道長。 經(jīng)常有香客問我兔综,道長饿凛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任软驰,我火速辦了婚禮涧窒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锭亏。我一直安慰自己纠吴,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布慧瘤。 她就那樣靜靜地躺著戴已,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碑隆。 梳的紋絲不亂的頭發(fā)上恭陡,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天蹬音,我揣著相機(jī)與錄音上煤,去河邊找鬼。 笑死著淆,一個胖子當(dāng)著我的面吹牛劫狠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播永部,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼独泞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苔埋?” 一聲冷哼從身側(cè)響起懦砂,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎组橄,沒想到半個月后荞膘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡玉工,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年羽资,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遵班。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡屠升,死狀恐怖潮改,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腹暖,我是刑警寧澤汇在,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站微服,受9級特大地震影響趾疚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜以蕴,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一糙麦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丛肮,春花似錦赡磅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至习劫,卻和暖如春咆瘟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诽里。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工袒餐, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谤狡。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓灸眼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親墓懂。 傳聞我的和親對象是個殘疾皇子焰宣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

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