1. 程式人生 > >MongoDB教程之MongoDB和Robomongo的安裝配置及簡單實戰

MongoDB教程之MongoDB和Robomongo的安裝配置及簡單實戰

一、MongoDB

1、下載地址

2、安裝

解壓安裝包,選擇自定義“Custom”修改安裝路徑為D:\Program Files\MongoDB,然後點選Next直到安裝結束。點選安裝包開始安裝

自定義選擇少佔用c盤

選擇合適的資料夾存放

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

:27017檢視是否啟動成功,成功如下圖這裡寫圖片描述

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()