你以為這樣子的數據就夠了嗎?老娘吃的鹽比你吃的米還要多。老闆娘冷笑一聲,隨便拿個幾千筆資料你以為你可以分析出什麼東西。沒有百萬筆資料不要來跟我說人工智慧。
糟糕了!幾千筆資料吸收起來就有點喘了,百萬筆該怎麼辦呢?
要處理大量的資料量,我們需要 noSQL 的資料庫,MongoDB 就是常見的選擇。
當然我們要先有安裝 MongoDB 的套件
pip install pymongo
開始進入 Mongo 吧!
import pymongo
#連線路徑
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
#使用 testdb 這個資料庫
mydb = myclient["testdb"]
接著來介紹一下常用的指令吧
#取得資料庫清單
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
dblist = myclient.list_database_names()
#查詢 collection 清單
mydb = myclient['runoobdb']
collist = mydb.list_collection_names()
MongoDB Insert
#插入單筆資料
mydict = { "name": "James", "nick": "wolf"}
x = mycol.insert_one(mydict)
#如果有需要印出 id 的話
print(x.inserted_id)
#插入多筆資料
mylist = [
{ "name": "Taobao", "alexa": "100"},
{ "name": "QQ", "alexa": "101"},
{ "name": "Facebook", "alexa": "10" },
{ "name": "知乎", "alexa": "103"},
{ "name": "Github", "alexa": "109" }
]
x = mycol.insert_many(mylist)
#印出所有產生的 id
print(x.inserted_ids)
MongoDB find
#查詢一筆
x = mycol.find_one()
#查詢多筆
for x in mycol.find():
print(x)
#設定查詢條件
myquery = { "name": "RUNOOB" }
mydoc = mycol.find(myquery)
#指定回傳筆數
myresult = mycol.find().limit(3)
MongoDB update
myquery = { "alexa": "10000" }
newvalues = { "$set": { "alexa": "12345" } }
mycol.update_one(myquery, newvalues)
myquery = { "name": { "$regex": "^F" } }
newvalues = { "$set": { "alexa": "123" } }
x = mycol.update_many(myquery, newvalues)
MongoDB delete
myquery = { "alexa": "10000" }
newvalues = { "$set": { "alexa": "12345" } }
mycol.delete_one(myquery, newvalues)
myquery = { "name": { "$regex": "^F" } }
newvalues = { "$set": { "alexa": "123" } }
x = mycol.delete_many(myquery, newvalues)