mongoDB安裝與pymongo的使用

mongoDB安裝與pymongo的使用

安裝

推薦docker-compose安裝:

  • 環境需求:
    • docker
    • docker-compose
  • docker-compose文件
version: '2'
services:
  mongo-container:
    image: mongo:3.4
    container_name: mongodb
    environment:
        - MONGO_INITDB_ROOT_USERNAME=root
        - MONGO_INITDB_ROOT_PASSWORD=123456
    ports:
      - "27017:27017"
    volumes:
      - "./data/mongo:/data/db"
      - "./data/mongo-entrypoint/:/docker-entrypoint-initdb.d/" # 此配置可以自定義一些初始化命令
    command: mongod
  • 自定義一些初始化命令(可選)
    • 在./data/mongo-entrypoint目錄下(上面配置裏的路徑對應)創建docker-entrypoint-initdb.sh(名字自起,.sh結尾即可)內容如下:
    • 以下命令創建了hi數據庫並且給該數據庫分配了一個’test’用戶
#!/usr/bin/env bash
echo "Creating mongo users..."
mongo admin --host localhost -u root -p 123456 --eval "db.createUser({user: 'admin', pwd: '123456', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]});"
mongo admin -u root -p 123456 << EOF
use hi
db.createUser({user: 'test', pwd: '123456', roles:[{role:'readWrite',db:'hi'}]})
EOF
echo "Mongo users created."

  • 啓動
docker-compose up -d

pymongo連接與使用

import pymongo

# 連接
client = pymongo.MongoClient("mongodb://root:123456@jd:27017/admin")

# mongoDB不用特意創建數據庫與集合,當集合中首次插入數據時,他們自動的就創建了
db = client["mydb"]  # 數據庫
collect = db["mycollect"]  # 集合

# 刪除集合,當數據庫下所有集合被刪除時,數據庫也自動刪除了
collect.drop()

data = {
        'name': 'Bob'
        'age': '12'
    }

# 插入數據,返回數據的 _id 或者 [_id1,id2]
result = collect.insert(data)
result = collect.insert([data1,data2])

# 查詢
collect.find_one({'name': 'Bob'})
collect.find({'name': 'Bob'})

# 更新
condition = {'name': 'Bob'}
student = collection.find_one(condition)
student['age'] = 25
result = collection.update(condition, student)

# 刪除
result = collection.remove({'name': 'Bob'})
  • 更多詳細用法 這裏
  • 文檔:
    • https://api.mongodb.com/python/current/api/pymongo/collection.html
    • https://api.mongodb.com/python/current/api/pymongo/
  • 個人網站 mew.wiki
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章