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'})