一、安装
1
|
pip install pymongo |
二、连接数据库
1
2
3
4
5
6
7
8
|
import pymongo # 方式一 client = pymongo.MongoClient( 'mongodb://localhost:27017' ) # 方式二 client = pymongo.MongoClient( 'localhost' , 27017 ) # 方式三,有密码认证 client = pymongo.MongoClient( 'localhost' , 27017 , username = 'xxx' , password = 'xxx' ) |
三、创建数据库
1
2
3
4
5
6
7
|
import pymongo # 连接 client = pymongo.MongoClient( 'mongodb://localhost:27017' ) # 创建test数据库 db = client.test # 或者 db = client['test'] print (db) |
四、所有数据库
1
2
3
4
|
import pymongo client = pymongo.MongoClient( 'mongodb://localhost:27017' ) dbs = client.list_database_names() |
五、创建集合
- 也就是数据库中的表
1
2
3
4
5
6
7
8
9
|
import pymongo client = pymongo.MongoClient( 'mongodb://localhost:27017' ) # 创建test数据库 db = client.test # 创建表 collections = db.user # 或者 collections = db['user'] # 删除表 collections.drop() |
六、插入数据
- insert_one:插入一条数据
- insert_many:插入多条数据
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
|
import pymongo client = pymongo.MongoClient( 'mongodb://localhost:27017' ) # 创建test数据库 db = client.test # 创建表 collections = db.user # 创建文档数据 user1 = { 'name' : 'autofelix' , 'age' : '25' , 'height' : '172' , 'weight' : '60' } user2 = { 'name' : '飞兔小哥' , 'age' : '28' , 'height' : '182' , 'weight' : '70' } # 插入一条文档集合 result = collections.insert_one(user1) print (result) print (result.inserted_id) # 插入多条文档集合 result = collections.insert_many([user1, user2]) print (result) print (result.inserted_ids) |
七、查询数据
- find:查询多条数据
- find_one:查询一条数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import pymongo client = pymongo.MongoClient( 'mongodb://localhost:27017' ) # 创建test数据库 db = client.test # 创建表 collections = db.user # 查询所有 collections.find() # 查询最近一条 collections.find_one() # 根据条件查询 collections.find_one({ 'age' : 25 }) |
八、高级查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import pymongo client = pymongo.MongoClient( 'mongodb://localhost:27017' ) # 创建test数据库 db = client.test # 创建表 collections = db.user # 跳过第一条查到的数据 collections.find({ 'age' :{ '$gt' : 10 }},[ 'height' , 'age' ]).skip( 1 ) # limit限制查询条数 collections.find({ 'age' :{ '$gt' : 10 }},[ 'height' , 'age' ]).limit( 1 ) # 多条件查询 collections.find_one({ 'height' :{ '$gt' : 150 }, 'age' :{ '$lt' : 26 , '$gt' : 10 }}) # in查询,查询年龄在25,26,32的数据 collections.find({ 'age' :{ '$in' :[ 25 , 26 , 32 ]}}) # or查询,查询年龄小于等于23或者大于等于29的数据 collections.find({ '$or' :[{ 'age' :{ '$lte' : 23 }}, { 'age' :{ '$gte' : 29 }}]}) # exists查询 collections.find({ 'age' :{ '$exists' : True }}) # 正则查询 collections.find({ 'name' :{ '$regex' :r '.*auto.*' }}) |
九、count统计
1
2
3
4
5
6
7
8
9
10
11
12
|
import pymongo client = pymongo.MongoClient( 'mongodb://localhost:27017' ) # 创建test数据库 db = client.test # 创建表 collections = db.user # 统计集合中总共有多少条数据 collections.find().count() # 统计集合中年龄大于10岁的共有多少条数据 collections.find({ 'age' :{ '$gt' : 10 }}).count() |
十、修改数据
- update_one:修改一条数据
- update_many:修改多条数据
1
2
3
4
5
6
7
8
9
10
11
12
|
import pymongo client = pymongo.MongoClient( 'mongodb://localhost:27017' ) # 创建test数据库 db = client.test # 创建表 collections = db.user # 修改一条数据 collections.update_one({ 'name' : 'autofelix' }, { '$set' : { 'name' : '大神' }}) # 修改多条数据 collections.update_many({ 'name' : 'autofelix' }, { '$set' : { 'name' : '大神' }}) |
十一、删除数据
- delete_one:删除一条数据
- delete_many:删除多条数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import pymongo client = pymongo.MongoClient( 'mongodb://localhost:27017' ) # 创建test数据库 db = client.test # 创建表 collections = db.user # 删除一条数据 collections.delete_one({ 'name' : 'autofelix' }) # 删除多条数据 collections.delete_many({ 'name' : 'autofelix' }) # 删除所有数据 collections.delete_many({}) |
十二、数据排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import pymongo client = pymongo.MongoClient( 'mongodb://localhost:27017' ) # 创建test数据库 db = client.test # 创建表 collections = db.user # 对字段 age 按升序排序 collections.find().sort( 'age' ) # 对字段 age 按降序排序 collections.find().sort( 'age' , - 1 ) # 多字段排序 collections.find().sort((( 'age' ,pymongo.ASCENDING),( 'height' ,pymongo.ASCENDING))) |
到此这篇关于python 包操作 mongodb 数据库详情的文章就介绍到这了,更多相关python 操作mongodb内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.51cto.com/autofelix/5195732