iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 4
0
自我挑戰組

30天搞懂Python系列 第 4

[第04天]30天搞懂Python-DB連線(MongoDB)

前言

這篇文章將實作使用pymongo連接MongoDB。

安裝 MongoDB

MongoDB是一個文件導向、NoSQL之資料庫,使用的數據類型 BSON(類似 JSON),目前在DB-Engines Ranking,文件導向資料庫已排名第五名,持續成長的資料庫,如下圖。
https://ithelp.ithome.com.tw/upload/images/20200919/20107143IVDfZQTbJg.jpg

參考MongoDB官網文件,進行安裝MongoDB

  1. 針對MAC terminal 進行宣告The Official MongoDB Software Homebrew Tap
brew tap mongodb/brew
  1. 安裝mongodb-community版本:4.4
brew install mongodb-community@4.4
  1. 安裝mongodb shell
brew install mongodb-community-shell

安裝完成後,以下三個檔案/路徑

  • 設定: (/usr/local/etc/mongod.conf)
  • log目錄: (/usr/local/var/log/mongodb)
  • data目錄: (/usr/local/var/mongodb)
  1. 執行mongodb
brew services start 已3⇣-community@4.4
  1. 確認是否已執行mongodb
ps aux | grep -v grep | grep mongod

確認成果如下圖:
https://ithelp.ithome.com.tw/upload/images/20200919/20107143oLrB6TrIRy.jpg
5.1 確認安裝

mongo --version

確認安裝執行成果:
https://ithelp.ithome.com.tw/upload/images/20200919/20107143DJuP60Judj.jpg
6. 查看執行mongodb狀況

tail -f /usr/local/var/log/mongodb/mongo.log

https://ithelp.ithome.com.tw/upload/images/20200919/20107143GzRRYkfdg8.jpg
6.1 也可以下載官方GUI工具:MongoDB Compass來進行確認,如下圖。
1.連線URL:mongodb://localhost:27017
https://ithelp.ithome.com.tw/upload/images/20200919/20107143KSqhEmJ6f7.jpg
2.成功連線成果,如下圖。
https://ithelp.ithome.com.tw/upload/images/20200919/20107143L5hiTnqCI5.jpg
7. 停止mongodb

brew services stop mongodb-community@4.4

安裝pymongo

python -m pip install pymongo

Python連線MongoDB

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["testMongoDB"]
dblst = myclient.list_database_names()
if "testMongoDB" in dblst:
  print("testMongoDB已存在!")
mycol = mydb["testMongoCol"]
collst = mydb.list_collection_names()
if "testMongoCol" in collst:   # testMongoCol 集合是否存在
  print("testMongoCol集合已存在!")
  mytestData = { "name": "Allen", "gender": "male", "address": "苗栗縣苑裡鎮" }
  x = mycol.insert_one(mytestData)
  x = mycol.find_one()
print(x)

執行成果

執行成果如下圖:
https://ithelp.ithome.com.tw/upload/images/20200920/20107143yZXYNMTI9a.jpg


上一篇
[第03天]30天搞懂Python-環形佇列(circular queue)
下一篇
[第05天]30天搞懂Python-基本型態
系列文
30天搞懂Python30

尚未有邦友留言

立即登入留言