天天看點

MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記

一、下載下傳檔案,提供兩種方式

1.網盤連結如下,裡面有兩個檔案。一個是3.6.10綠色壓縮檔案,一個是包含3.4.2安裝版本和RoBoMongo的可視化工具,根據需要選擇。

連結:https://pan.baidu.com/s/1cBQseVXbYfqRVpek_e52fw

提取碼:mtoq

MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記

2.官網下載下傳,在官網找到自己想要的版本進行下載下傳

連結:https://www.mongodb.com/download-center/community

MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記

二、安裝、配置(這裡以綠色壓縮版為例)

1、将解壓内容複制到自己在磁盤中建立的新檔案夾MongoDB中并建立一個data檔案夾和log檔案夾
MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記
2、配置環境變量,在系統變量中為Path新增一個變量,值為剛剛複制到MongoDB檔案夾中的bin檔案位址
MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記
MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記
3、以管理者運作cmd,建立mongodb服務
輸入:sc create MongoDB binpath=“E:\MongoDB\bin\mongod.exe --dbpath E:\MongoDB\data --logpath E:\MongoDB\log\log.log --logappend --service”

根據自己檔案夾位置進行更改

MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記
4、登入并建立root權限使用者
C:\WINDOWS\system32>mongo

進入後按截圖操作:

db.createUser({user:“root”,pwd:“123456”,roles:[{role:“root”,db:“admin”}]})
MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記
5、Ctrl+d退出後,關閉服務,進行登入驗證設定

1.先輸入net stop MongoDB 把服務停止

2.輸入sc delete MongoDB 删除這個服務

3.以auth的方式注冊服務:sc create MongoDB binpath=“D:\MongoDB\bin\mongod.exe --dbpath D:\MongoDB\data --logpath D:\MongoDB\log\log.log --logappend --auth --service”

4.啟動服務net start MongoDB

sc create MongoDB binpath=“E:\MongoDB\bin\mongod.exe --dbpath E:\MongoDB\data --logpath E:\MongoDB\log\log.log --logappend --auth --service”
MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記
5、驗證是否成功

兩種登入方式:

1.直接敲mongo進入,但沒有權限,use admin 後敲db.auth(“root”,“123456”)驗證,之後就有權限了。

效果圖:

MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記

2.直接敲mongo -u root -p 然後輸入密碼進入,直接有權限

MongoDB在Windows10上的安裝配置和基本語句一、下載下傳檔案,提供兩種方式二、安裝、配置(這裡以綠色壓縮版為例)三、基礎知識筆記

三、基礎知識筆記

資料庫操作

1.檢視目前資料庫名稱
db

2.檢視所有資料庫名稱
列出所有在實體上存在的資料庫:
show dbs

3.切換資料庫
如果資料庫不存在,則指向資料庫,但不建立,直到插入資料或建立集合時資料庫才被建立
use 資料庫名稱
預設的資料庫為test,如果你沒有建立新的資料庫,集合将存放在test資料庫中

4.删除目前指向的資料庫
如果資料庫不存在,則什麼也不做
db.dropDatabase()
           

集合操作

1.建立集合
db.createCollection(name, options)
name是要建立的集合的名稱
options是一個文檔,用于指定集合的配置
選項​​參數是可選的,是以隻需要到指定的集合名稱。

參數capped:預設為false表不設上限,值為true表設上限
參數size:當capped值為true時,表示上限大小,當文檔達到上限時,會将之前的資料覆寫,機關為位元組
例2:db.createCollection("sub", { capped : true, size : 10 } )

2.檢視目前資料庫的集合
show collections

3.删除
db.集合名稱.drop()
           

資料類型

下表為MongoDB中常用的幾種資料類型:
Object ID:文檔ID
String:字元串,最常用,必須是有效的UTF-8
Boolean:存儲一個布爾值,true或false
Integer:整數可以是32位或64位,這取決于伺服器
Double:存儲浮點值
Arrays:數組或清單,多個值存儲到一個鍵
Object:用于嵌入式的文檔,即一個值為一個文檔
Null:存儲Null值
Timestamp:時間戳
Date:存儲目前日期或時間的UNIX時間格式
           

object id

每個文檔都有一個屬性,為_id,保證每個文檔的唯一性
可以自己去設定_id插入文檔
如果沒有提供,那麼MongoDB為每個文檔提供了一個獨特的_id,類型為objectID
objectID是一個12位元組的十六進制數
    前4個位元組為目前時間戳
    接下來3個位元組的機器ID
    接下來的2個位元組中MongoDB的服務程序id
    最後3個位元組是簡單的增量值
           

插入資料

db.集合名稱.insert(document)
插入文檔時,如果不指定_id參數,MongoDB會為文檔配置設定一個唯一的ObjectId
           

簡單查詢

db.集合名稱.find()
           

更新

db.集合名稱.update(
   <query>,
   <update>,
   {multi: <boolean>}
)
參數query:查詢條件,類似sql語句update中where部分
參數update:更新操作符,類似sql語句update中set部分
參數multi:可選,預設是false,表示隻更新找到的第一條記錄,值為true表示把滿足條件的文檔全部更新

例3:全文檔更新
db.stu.update({name:'hr'},{name:'mnc'})

例4:指定屬性更新,通過操作符$set
db.stu.insert({name:'hr',gender:0})
db.stu.update({name:'hr'},{$set:{name:'hys'}})

例5:修改多條比對到的資料
db.stu.update({},{$set:{gender:0}},{multi:true})
           

儲存

db.集合名稱.save(document)

如果文檔的_id已經存在則修改,如果文檔的_id不存在則添加

例6
db.stu.save({_id:'20160102','name':'yk',gender:1})

例7
db.stu.save({_id:'20160102','name':'wyk'})
           

删除

db.集合名稱.remove(
   <query>,
   {
     justOne: <boolean>
   }
)
參數query:可選,删除的文檔的條件
參數justOne:可選,如果設為true或1,則隻删除一條,預設false,表示删除多條

例8:隻删除比對到的第一條
db.stu.remove({gender:0},{justOne:true})

例9:全部删除
db.stu.remove({})
           

資料查詢

方法find():查詢
方法findOne():查詢,隻傳回第一個
方法pretty():将結果格式化

比較運算符:①小于$lt
②小于或等于$lte
③大于$gt
④大于或等于$gte
⑤不等于$ne

邏輯運算符:,隔開預設為and
邏輯或:使用$or

範圍運算符:使用"$in","$nin" 判斷是否在某個範圍内
例如:{$in:[1,2,3,4]}

使用//或$regex編寫正規表達式
例如:{name:/.*/}    {name:{$regex:".*"}}

函數查詢:使用$where後面寫一個函數,傳回滿足條件的資料
例如:{$where:function(){return this.age>20}
           

其他

方法limit():用于讀取指定數量的文檔
db.集合名稱.find().limit(NUMBER)

方法skip():用于跳過指定數量的文檔
db.集合名稱.find().skip(NUMBER)

方法sort(),用于對結果集進行排序
db.集合名稱.find().sort({字段:1,...})

方法count()用于統計結果集中文檔條數
db.集合名稱.find({條件}).count()

方法distinct()對資料進行去重
db.集合名稱.distinct('去重字段',{條件})
           

聚合

聚合(aggregate)主要用于計算資料,類似sql中的sum()、avg()
db.集合名稱.aggregate([{管道:{表達式}}])

常用管道
$group:将集合中的文檔分組,可用于統計結果
$match:過濾資料,隻輸出符合條件的文檔
$project:修改輸入文檔的結構,如重命名、增加、删除字段、建立計算結果
$sort:将輸入文檔排序後輸出
$limit:限制聚合管道傳回的文檔數
$skip:跳過指定數量的文檔,并傳回餘下的文檔
$unwind:将數組類型的字段進行拆分

常用表達式
$sum:計算總和,$sum:1同count表示計數
$avg:計算平均值
$min:擷取最小值
$max:擷取最大值
$push:在結果文檔中插入值到一個數組中
$first:根據資源文檔的排序擷取第一個文檔資料
$last:根據資源文檔的排序擷取最後一個文檔資料
           

安全

常用系統角色如下:
    root:隻在admin資料庫中可用,超級賬号,超級權限
    Read:允許使用者讀取指定資料庫
    readWrite:允許使用者讀寫指定資料庫

建立超級管理使用者
use admin
db.createUser({
    user:'admin',
    pwd:'123',
    roles:[{role:'root',db:'admin'}]
})
           

備份與恢複

備份:mongodump -h dbhost -d dbname -o dbdirectory
恢複:mongorestore -h dbhost -d dbname --dir dbdirectory
           

與python互動

下載下傳pymongo

1.導包pymongo
import pymongo

2.連接配接,建立用戶端
client=pymongo.MongoClient("localhost", 27017)

3.獲得資料庫test1
db=client.test1

4.獲得集合stu
stu = db.stu

添加文檔
s1={name:'gj',age:18}
s1_id = stu.insert_one(s1).inserted_id

查找一個文檔
s2=stu.find_one()

查找多個文檔1
for cur in stu.find():
print cur

查找多個文檔2
cur=stu.find()
cur.next()
cur.next()
cur.next()

擷取文檔個數
print stu.count()