NoSQL資料庫-MongoDB 學習(一)
阿新 • • 發佈:2020-07-21
基本介紹
- MongoDB 是為了快速開發網際網路 Web 應用而設計的資料庫系統
- MongoDB 的設計目標是極簡、靈活、作為 Web 應用棧的一部分
- MongoDB 的資料模型是面向檔案的,所謂檔案是一種類似於 JSON 的結構,所以我們可以簡單的理解為MongoDB 中存放的是各種各樣的 JSON(其實是BSON)
三個概念
- 資料庫(database):資料庫是一個倉庫,存放集合
- 集合(collection):集合類似於陣列,存放檔案
- 檔案(document):檔案資料庫中的最小單位,我們儲存和操作的內容都是檔案
安裝與啟動(Windows)
安裝:
- 下載地址:https://www.mongodb.org/dl/win32/
- 下載後一路 next,傻瓜式安裝,想修改安裝路徑就改一下
- 配置環境變數:找到安裝位置,將 bin 資料夾的位置新增到環境變數 path 中
- 在 C 盤根目錄建立一個 data 資料夾,data 裡面建立一個 db 資料夾。(不在 C 盤建立也可以,不過啟動的時候需要加上
--dbpath 路徑
)
命令列啟動(不推薦):
開啟 cmd 視窗,輸入
mongod
來啟動伺服器,出現如下介面即可。預設埠 27017,可以通過
--port 埠號
來指定。瀏覽器訪問:localhost:27017,出現如下介面
再開啟一個 cmd 視窗,輸入
mongo
啟動客戶端,之後就可以對資料庫進行操作了
建立服務的方式啟動(推薦)
以命令列的方式啟動有些麻煩,而且開啟的 cmd 視窗關閉後 mongodb 服務也會關閉,因此我們需要將其設定為後臺執行
在 C 盤建立 data 資料夾,data 下建立 db 和 log 資料夾
在安裝目錄(bin 的同級目錄)新增一個
mongod.cfg
檔案,新增如下內容systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
以管理員身份開啟 cmd 視窗,輸入以下命令(將其中的路徑改為自己安裝的路徑)
sc.exe create MongoDB binPath= "\"D:\devtools\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"D:\devtools\MongoDB\Server\3.4\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
開啟服務列表,右鍵啟動 MongoDB
如果啟動失敗,證明上邊的操作有誤,在控制檯輸入
sc delete MongoDB
刪除之前配置的服務,然後從第一步再來一次。
基本命令
show dbs / show databases
:顯示所有的資料庫use <database name>
:使用指定資料庫db
:檢視當前正在使用的資料庫show collections
:檢視當前資料庫中所有的集合
CRUD 操作
格式:db.集合名.操作(資料)
增加
/*在 person 集合中增加一個檔案*/
db.person.insertOne({name: "張三", age: 20, gender: "male"}) /*在 person 集合中增加一個或多個檔案*/
db.person.insert([{name: "張三", age: 20, gender: "male"},{name: "李四", age: 30, gender: "male"}]) /*插入多個也可以通過insertMany實現*/
db.person.insertMany(...)
查詢
/*查詢 person 集合下所有檔案*/
db.person.find() /*查詢一個*/
db.person.findOne() /*查詢檔案數量*/
db.person.find().count()
更新
/*可以修改、替換集合中的一個或多個檔案*/
db.person.update({name: "張三"}, {$set:{name: "王五"}}) /*修改集合中的一個檔案*/
db.collection.updateOne() /*修改集合中的多個檔案*/
db.collection.updateMany() /*替換集合中的一個檔案*/
db.collection.replaceOne()
刪除
/*刪除集合中的一個或多個檔案(預設刪除多個)*/
db.collection.remove() /*刪除集合中的一個檔案*/
db.collection.deleteOne() /*刪除集合中的多個檔案*/
db.collection.deleteMany() /*清空一個集合*/
db.collection.remove({}) /*刪除一個集合*/
db.collection.drop() /*刪除一個資料庫*/
db.dropDatabase()