mongodb 字段出现次数_MongoDB数据库
內容回顧
- Xpath選擇器
不要求記憶,只要混個眼熟即可
- 基于openpyxl模塊爬取豆瓣電影
單頁爬取
多頁爬取
1.校驗請求頭里面是否有User-Agent參數
請求頭里面加上即可
2.限制IP規定時間內的訪問次數
1.人為的加上時間延遲
在你的程序里面加上time.sleep()讓你的程序間歇一段時間之后再執行
2.IP代理池
- 非關系型數據庫之MongoDB
關系型數據庫與非關系型數據庫
常見數據庫軟件的端口號
3306 MySQL
6379 redis
27017 MongoDB
今日內容概要
- MongoDB下載與安裝
- 基本命令操作
- 賬號創建及權限管理
- 快捷操作MongoDB軟件
Navicat
Robo 3T
今日內容詳細
MongoDB下載與安裝
百度搜索官網點擊社區版本(community server)下載即可
安裝步驟可以參考:MongoDB 教程 | 菜鳥教程
1.下載.msi的文件
2.完成后雙擊該文件
custom自定義安裝路徑(放到D、E、F盤的根目錄下)
D:
E:
F:
不要勾選install MongoDB Compass
3.手動在MongoDB文件夾根目錄下(自動創建了就不要創了 版本原因)
1.創建data文件夾
然后再data文件夾內創建db文件夾
2.創建log目錄
然后在log目錄下創建mongod.log文件
4.將mongod.exe文件所在的路徑添加到環境變量中
mongod.exe mongodb數據庫的服務端
mysqld.exe MySQL數據庫的服務端
5.在MongoDB文件夾根目錄下
創建mongod.cfg文件
在該文件內拷貝以下代碼
systemLog:
destination: file
path: "D:MongoDBlogmongod.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: "D:MongoDBdatadb"
net:
bindIp: 0.0.0.0
port: 27017
setParameter:
enableLocalhostAuthBypass: false
6.系統服務制作
一定要用管理員身份打開cmd終端
mongod --config "D:MongoDBmongod.cfg" --bind_ip 0.0.0.0 --install
或者直接在命令行指定配置
mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:MongoDBlogmongod.log --logappend --dbpath D:MongoDBdatadb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install --auth
注意這里--auth如果沒有創建權限管理就不要加
7.啟動關閉
net start MongoDB
net stop MongoDB
8.登錄
mongo
MongoDB重要概念
"""
MySQL中三個重要概念
庫 文件夾
表 文件夾里面的文件
記錄數據 文件里面的一行行數據
"""
# 查看所有的庫
show databases; # MySQL命令
show dbs # MongoDB命令
SQL術語/概念 MongoDB術語/概念 解釋/說明
database database 數據庫
table collection 數據庫表/集合
row document 數據記錄行/文檔
column field 數據字段/域
index index 索引
inner join 表連接,MongoDB不支持
primary key primary key MongoDB自動將_id字段設置為主鍵
庫的增刪改查
1.創建
use 庫名 # use db1
# 庫不存在會自動創建(臨時先創建在內存中) 但是只有當你真正在該庫里面產生數據之后才會刷到硬盤(再保存到硬盤) 如果不錄入數據則創建的庫就沒了 所以用show dbs可能查看不到
2.查看
show dbs
3.改(忽略)
4.刪
要先有數據的庫才能刪除
use db1
db.db1.insert({'name':'jason'})
db.dropDatabase() (這里敲代碼時tab鍵補全)
集合的增刪改查
1.查
show tables
2.增
db.集合名 # 規律跟 use 庫名一致 里面沒有數據是show不出來的 db是關鍵字
db.createCollection(集合名) # db.createCollection('t2') # 直接寫入硬盤
3.改(忽略)因為沒有固定表結構沒有字段 字段名 字段類型
4.刪
db.集合名.drop() # db.t2.drop()
文檔增刪改查
1.增
單條
db.集合名.insert({...}) # db.t1.insert({'name':'jason'})
等價于
db.集合名.save({...})
多條
db.集合名.insert([{...},{...},{...},{...}])
2.查
查詢所有
db.集合名.find() # db.t1.find()
3.改
db.集合名.update(
篩選條件
新的內容
)
db.t1.update({'name':'jason1'},{$set:{'name':'jason111'}})
4.刪
db.集合名.remove(
篩選條件
)
db.t1.remove({'name':'jason2'})
#1、刪除多個中的第一個
db.t1.deleteOne({ 'age': 8 })
#2、刪除國家為China的全部
db.t1.deleteMany( {'addr.country': 'China'} )
#3、刪除全部
db.t1.deleteMany({})
用戶創建及權限管理
正常的數據庫軟件都應該有用戶及對應的權限管理
不可能所有人都是管理員都可以對所有的數據進行操作
有些用戶只可以查看,有些用戶可以修改,有些用戶可以刪除...
管理員賬戶需要在admin數據庫下創建
1.切換到admin數據庫下
use admin
2.創建賬戶并且賦予權限
db.createUser(
{
user: "root",
pwd: "123",
roles: [ { role: "root", db: "admin" } ]
}
)
其他用戶在test數據庫下創建
1.切換到test數據庫下
use test
2.創建賬戶并賦予權限
db.createUser(
{
user: "jason",
pwd: "123",
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "db1" } ]
}
)
'''上述賬戶都可以創建多個'''
先停止服務
net stop MongoDB
再移除服務
mongod --remove
再次添加
mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:MongoDBlogmongod.log --logappend --dbpath D:MongoDBdata --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install --auth
再次啟動
net start MongoDB
兩種驗證方式
1.直接在登錄的時候驗證
mongo -u "root" -p "123" --port 27017 --authenticationDatabase "admin"
2.進入之后再驗證
mongo
use admin
db.auth("root","123")
注意在切換賬戶時普通用戶不能直接切換到管理員身份需要exit退出后重新進入
作業
1.記憶關系型數據庫的ACID四大特性
- 原子性(Atomicity):化學中的原子指不可再分的基本微粒,數據庫中原子性強調事務是一個不可分割的整體,事務開始后所有操作要么全部成功,要么全部失敗,不可能停滯在中間某個環節。如果事務執行過程中出錯就會回滾到事務開始前的狀態,所有的操作就像沒有發生一樣不會對數據庫有任何影響。
- 一致性(Consistency):事務必須使數據庫從一個一致性狀態變換到另一個一致性狀態,即一個事務執行之前和執行之后都必須處于一致性狀態。拿轉賬來說,假設用戶A和用戶B兩者的錢加起來一共是5000,那么不管A和B之間如何轉賬,轉幾次賬,事務結束后兩個用戶的錢相加起來應該還是5000,這就是事務的一致性。
- 隔離性(Isolation):當多個用戶并發訪問數據庫時,比如操作同一張表時,數據庫為每一個用戶開啟的事務,不能被其他事務的操作所干擾,多個并發事務之間要相互隔離,比如A正在從一張銀行卡中取錢,在A取錢的過程結束前,B不能向這張卡轉入錢。
- 持久性(Durability):一個事務一旦被提交,則對數據庫的所有更新將被保存到數據庫中,不能回滾。
2.自己總結歸納數據庫三大范式
第一范式(保證每列具有原子性,列不可再分)。
第二范式( 確保表中的每一列都和主鍵相關)
第三范式 (數據庫中的每一列和主鍵列直接相關而不是間接相關)
3.自己獨立完成數據庫的安裝并創建兩個管理員賬戶三個普通用戶賬戶
三個普通賬戶各自權限都不一致
總結
以上是生活随笔為你收集整理的mongodb 字段出现次数_MongoDB数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux docker安装_Linux
- 下一篇: linux cmake编译源码,linu