iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
0
AI & Data

30天從嫩嫩的人工智慧奇幻旅程系列 第 11

經驗值不夠就不好說智慧 python MongoDB

  • 分享至 

  • xImage
  •  

你以為這樣子的數據就夠了嗎?老娘吃的鹽比你吃的米還要多。老闆娘冷笑一聲,隨便拿個幾千筆資料你以為你可以分析出什麼東西。沒有百萬筆資料不要來跟我說人工智慧。

糟糕了!幾千筆資料吸收起來就有點喘了,百萬筆該怎麼辦呢?


要處理大量的資料量,我們需要 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)


上一篇
python MySQL 處理
下一篇
一個蘿蔔一個坑,整理好的資料集合 python dataframe 格式
系列文
30天從嫩嫩的人工智慧奇幻旅程25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言