mongoDB安装与pymongo的使用

基于Linux下使用docker-compose搭建mongoDB,以及一些简单使用的范例

mongoDB安装与pymongo的使用

安装

推荐docker-compose安装:

  • 环境需求:
    • docker
    • docker-compose
  • docker-compose文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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’用户
script
1
2
3
4
5
6
7
8
#!/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."
  • 启动
script
1
docker-compose up -d

pymongo连接与使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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/