MongoDB的下載、安裝、python簡單使用.
目錄
MongoDB簡介:
MongoDB 是一個基於分散式檔案儲存的資料庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴充套件的高效能資料儲存解決方案。
MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。
NoSQL 簡介
NoSQL(NoSQL = Not Only SQL ),意即"不僅僅是SQL"。-----‘以前以為是 No SQL !! ’
應用實踐證明,關係模型是非常適合於客戶伺服器程式設計,遠遠超出預期的利益,今天它是結構化資料儲存在網路和商務應用的主導技術。NoSQL提倡運用非關係型的資料儲存,相對於關係型資料庫運用,這一概念無疑是一種全新的思維的注入。
關係型資料庫遵循ACID規則
事務在英文中是transaction,和現實世界中的交易很類似,它有如下四個特性:
1、A (Atomicity) 原子性
事務裡的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。
比如銀行轉賬,從A賬戶轉100元至B賬戶,分為兩個步驟:1)從A賬戶取100元;2)存入100元至B賬戶。這兩步要麼一起完成,要麼一起不完成,如果只完成第一步,第二步失敗,錢會莫名其妙少了100元。
2、C (Consistency) 一致性
資料庫要一直處於一致的狀態,事務的執行不會改變資料庫原本的一致性約束。
如完整性約束a+b=10,如果一個事務改變了a,那麼必須得改變b,使得事務結束後依然滿足a+b=10,否則事務失敗。
3、I (Isolation) 獨立性
獨立性是指併發的事務之間不會互相影響,如果一個事務要訪問的資料正在被另外一個事務修改,只要另外一個事務未提交,它所訪問的資料就不受未提交事務的影響。
比如現在有個交易是從A賬戶轉100元至B賬戶,在這個交易還未完成的情況下,如果此時B查詢自己的賬戶,是看不到新增加的100元的。
4、D (Durability) 永續性
永續性是指一旦事務提交後,它所做的修改將會永久的儲存在資料庫上,即使出現宕機也不會丟失。
以上內容來自:http://www.runoob.com/mongodb/mongodb-intro.html
MongoDB下載:
https://www.mongodb.com/download-center/community
建立資料目錄
MongoDB將資料目錄儲存在 db 目錄下。但是這個資料目錄不會主動建立,我們在安裝完成後需要建立它。請注意,資料目錄應該放在根目錄下((如: C:\ 或者 D:\ 等 )。
命令列下執行 MongoDB 伺服器
為了從命令提示符下執行 MongoDB 伺服器,你必須從 MongoDB 目錄的 bin 目錄中執行 mongod.exe 檔案。
d:\mongodb\bin\mongod --dbpath d:\data\db
連線MongoDB
我們可以在命令視窗中執行 mongo.exe 命令即可連線上 MongoDB,執行如下命令:
d:\mongodb\bin\mongo.exe
通過配置配置檔案啟動服務
在mongdb的目錄下編寫mongod.cfg檔案,並建立對應資料夾
systemLog:
destination: file
path: d:\data\log\mongod.log
storage:
dbPath: d:\data\db
通過命令安裝配置檔案
d:\mongodb\bin\mongod.exe --config "d:\mongodb\mongod.cfg" --install
直接啟動即可,關閉服務端視窗即可停止服務
也可以使用指令啟動服務
視覺化管理工具
https://nosqlbooster.com/downloads
python連線測試
import pymongo
from pymongo import MongoClient
conn = MongoClient('localhost',27017)
db = conn.test
my_set = db.test_set
插入資料
insert插入一個列表多條資料不用遍歷,效率高, save需要遍歷列表,一個個插入
my_set.insert({"name":"zhangsan1","age":18})
my_set.save({"name":"zhangsan2","age":18})
查詢資料
(查詢不到則返回None)
for i in my_set.find():
print(i)
for i in my_set.find({"name":"zhangsan1"}):
print(i)
print(my_set.find_one({"name":"zhangsan2"}))
更新資料
my_set.update({"name":"zhangsan1"},{'$set':{"age":22}})
my_set.update({"name":"zhangsan2"},{'$set':{"age":33}})
for i in my_set.find():
print(i)
刪除資料
my_set.remove({'name': 'zhangsan1'})
id = my_set.find_one({"name":"zhangsan2"})["_id"]
my_set.remove(id)
db.users.remove()