MongoDB教程之MongoDB和Robomongo的安裝配置及簡單實戰
一、MongoDB
1、下載地址
2、安裝
解壓安裝包,選擇自定義“Custom”修改安裝路徑為D:\Program Files\MongoDB
,然後點選Next直到安裝結束。
3、配置
3-1、建立資料庫檔案存放位置 新建MongoDB的子資料夾data,再新建data的子資料夾db D:Program FilesMongoDBdatadb
3-2、啟動服務 啟動cmd,進入D:Program FilesMongoDBbin目錄,輸入
mongod --dbpath D:\Program Files\MongoDB\data\db
開啟瀏覽器http://localhost
3-3、新建存放日誌檔案的資料夾
新建data的子資料夾log D:\Program Files\MongoDB\data\log
3-4、配置mongo.config檔案 新建mongo.config檔案 開啟檔案輸入文字如下:
dbpath=D:\Program Files\MongoDB\data\db
logpath=D:\Program Files\MongoDB\data\log\mongo.log
3-5、配置windows服務
管理員身份啟動cmd,進入D:\Program Files\MongoDB\bin
目錄,輸入
mongod --config "D:\Program Files\MongoDB\mongo.config" --install --serviceName "MongoDB"
完成後開啟服務,之後可使用net start MongoDB來啟動mongodb
4-1、報錯問題整合
1.解除安裝重灌後報錯發生系統錯誤2 系統找不到指定的檔案
?
①、控制面板-管理工具-服務,開啟mongoDB服務(根據你上次定義的名字查詢)
②、SC DELETE mongoDB
③、mongod --config "D:\Program Files\MongoDB\mongo.config" --install --serviceName "MongoDB"
2.埠被佔用? [失敗原因之一埠被佔用→傳送門]
4、設定auth認證/許可權(可選)
mongo預設是沒有密碼可進去,如果需要設定使用者名稱和密碼的話需要進行三個步驟: ①、建立管理員 ②、授權認證 ③、給使用的資料庫新增使用者
C:\WINDOWS\system32>mongo//開啟cmd輸入mongo開啟服務
//使用admin資料庫
> use admin
switched to db admin
//新增使用者名稱和密碼
> db.createUser({user:"admin",pwd:"admin",roles:["root"]})
Successfully added user: { "user" : "admin", "roles" : [ "root" ] }
//登入認證
> db.auth("admin","admin")
1
//新建 test資料庫
> use test
switched to db test
//新增使用者許可權和角色
> db.createUser({user:'root',pwd:'123456',roles:[{role:'dbOwner',db:'test'}]})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "dbOwner",
"db" : "test"
}
]
}
> mongod --config "D:\Program Files\MongoDB\mongo.config" --auth
2018-07-03T16:13:24.477+0800 E QUERY [thread1] SyntaxError: missing ; before statement @(shell):1:9
二、Robomongo
Robomongo又名robo.3t,試過mongo的資料庫中算是最好的,另外studio.3t也不錯。自帶的compass經常會打不開可能被我安全管家吞檔案了;mongoVue在mongo3版本以上表現不佳,頻頻出錯。
1、下載地址
2、安裝
按照步驟選擇合適路徑進行安裝
三、簡單使用
MongoDB是非關係型資料庫,與關係型資料庫SQL、Oracle、Mysql有著很大的區別。關係型資料庫通過外來鍵關聯來建立表與表之間的關係,而非關係型資料庫通常指資料以物件的形式儲存在資料庫中,而物件之間的關係通過每個物件自身的屬性來決定。
3-1、非關係型資料庫和關係型資料庫區別
通過表格來區別兩種資料庫型別的術語概念
sql術語/概念 | MongoDB術語/概念 | 解釋/說明 |
---|---|---|
database | database | 資料庫 |
table | collection | 資料庫表/集合 |
row | document | 資料記錄行/文件 |
column | field | 資料欄位/域 |
index | index | 索引 |
table joins | - | 表連線,mongoDB不支援 |
primary key | primary key | 主鍵,MongoDB自動將 _id欄位設定為主鍵 |
3-2、基礎實戰
對於資料來說無疑就是“增刪改查”。下面通過實戰的例子來熟悉基本命令操作,可直接控制檯查詢結果也可在視覺化工具裡面進行檢視變化。
mongo //進入資料庫
//展示所有資料庫
> show dbs
admin 0.000GB
local 0.000GB
//新建一個數據庫名字
> use demo
switched to db demo
//此時demo為空所以查詢時不顯示
> show dbs
admin 0.000GB
local 0.000GB
//新建表第一種方法
> db.user.insert({id:1})
WriteResult({ "nInserted" : 1 })
//新建表第二種方法
> db.createCollection("users")
{ "ok" : 1 }
//顯示錶格,此時就有user和users兩個表格
> show collections
user
users
//刪除user表格
> db.user.drop()
true
//新增表格資料
> db.user.insert({userId:101,userName:'ct',userAge:'24',place:{province:'福建',city:'廈門'}})
WriteResult({ "nInserted" : 1 })
> db.user.insert({userId:102,userName:'qt',userAge:'26',place:{province:'廣東',city:'深圳'}})
WriteResult({ "nInserted" : 1 })
//查詢全部資料
> db.user.find()
{ "_id" : ObjectId("5b3c7d45a4af2175cb184b96"), "userId" : 101, "userName" : "ct", "userAge" : "24", "place" : { "province" : "福建", "city" : "廈門" } }
{ "_id" : ObjectId("5b3c7d56a4af2175cb184b97"), "userId" : 102, "userName" : "qt", "userAge" : "26", "place" : { "province" : "廣東", "city" : "深圳" } }
//查詢userName為ct的資料
> db.user.find({userName:'ct'})
{ "_id" : ObjectId("5b3c7d45a4af2175cb184b96"), "userId" : 101, "userName" : "ct", "userAge" : "24", "place" : { "province" : "福建", "city" : "廈門" } }
//查詢userAge為大於20的資料
//$gt大於;$lt小於;$gte大於等於;$lte小於等於;$eq等於
> db.user.find({userAge:{$gt:"24"}})
{ "_id" : ObjectId("5b3c7d56a4af2175cb184b97"), "userId" : 102, "userName" : "qt", "userAge" : "26", "place" : { "province" : "廣東", "city" : "深圳" } }
//查詢第一條資料
> db.user.findOne()
{ "_id" : ObjectId("5b3c348f03c085f8633d1c4f"), "userId" : 101, "userName" : "ct", "userAge" : "24", "place" : { "province" : "福建", "city" : "廈門" } }
//查詢第一條資料並格式化.pretty()
> db.user.findOne().pretty()
{
"_id" : ObjectId("5b3c348f03c085f8633d1c4f"),
"userId" : 101,
"userName" : "ct",
"userAge" : "24",
"place" : {
"province" : "福建",
"city" : "廈門"
}
}
//將userName為ct的userAge屬性改成18,使用$set
> db.user.update({userName:'ct'},{$set:{userAge:18}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
//將userName為ct的place屬性的city屬性改成漳州,注意place.city要用單引號引起來
> db.user.update({userName:'ct'},{$set:{'place.city':'漳州'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
//刪除userId屬性為101的資料
> db.user.remove({userId:101})
//刪除整個資料庫
> db.dropDatabase()