Python操作MongoDB数据库

释放双眼,带上耳机,听听看~!

本文包括Python连接MongoDB增删查改和排序

一、连接MongoDB

pip install pymongo

连接数据库,如果数据库已经存在,直接使用。若未存在,则新建一个数据库。

  • list_database_names():所有数据库名称

  • list_collection_names():所有集合(数据表)名称


1
2
3
4
5
6
7
1import pymongo
2
3client = pymongo.MongoClient("mongodb://localhost:27017/")  # 连接MongoDB
4dblist = client.list_database_names()   #获取所有数据库名称
5print(dblist)
6
7

1
2
3
4
5
6
7
8
1import pymongo
2
3client = pymongo.MongoClient("mongodb://localhost:27017/")  # 连接MongoDB
4db = client.douban  # 选择数据库douban,等同于db = client['douban']
5tablelist = db.list_collection_names()     #获取所有集合(数据表)名称
6print(tablelist)
7
8

在 MongoDB 中,集合,即数据表只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

二、查询数据

1、普通查询

  • find()


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1import pymongo
2import pandas as pd
3
4client = pymongo.MongoClient("mongodb://localhost:27017/")  # 连接MongoDB
5db = client.douban        #选择数据库douban,等同于db = client['douban']
6table = db.movies    #选择数据表,等同于table = db['movies']
7# x = table.find_one()      #查询第一条
8
9#查询值为1的列,值为0表示不查询此列
10x = table.find({}, {"_id": 0, 'rank': 1, 'movie': 1, 'star': 1})
11# print(list(x))      #转化为list对象
12results = pd.DataFrame(list(x))     #转化为pd类型
13
14print(results)
15#for x in table.find():       #一条一条遍历
16#    print(x)
17
18

Python操作MongoDB数据库
注意,不能像下面这样写,会报错:


1
2
3
4
1#除了_id,其他键的值同时存在1和0时会报错
2x = table.find({}, {"_id": 0, 'rank': 1, 'movie': 1, 'star': 0})
3
4

2、条件查询

  • 正则查询

  • $gt:大于

  • $lt:小于

  • limit()


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1import pymongo
2
3client = pymongo.MongoClient("mongodb://localhost:27017/")  # 连接MongoDB
4db = client.douban        #选择数据库douban,等同于db = client['douban']
5table = db.movies    #选择数据表,等同于table = db['movies']
6
7query = {'star':'9.2'}
8#query2 = {'star': {'$gt':'9.2'}}       #star大于9.2
9#query3 = {'movie': {"$regex": "^肖"}}    # 正则查询,以肖开头的电影
10results = table.find(query)
11#results = table.find(query).limit(3)      #查询指定条数,这里是3条
12print(list(results)[0])
13
14

三、插入数据

  • insert_one()

  • insert_many()


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1import pymongo
2
3client = pymongo.MongoClient("mongodb://localhost:27017/")  # 连接MongoDB
4db = client.douban        #选择数据库douban,等同于db = client['douban']
5table = db.movies    #选择数据表,等同于table = db['movies']
6# data = {'rank': '12', 'movie': '大白历险记', 'star': '8.2', 'introduce': '历险/动作'}
7# table.insert_one(data)   #插入一条
8datas = [{'_id':1,'rank': '12', 'movie': '大白历险记', 'star': '8.2', 'introduce': '历险/动作'},
9         {'_id': 2, 'rank': '13', 'movie': '大黑历险记','star': '8.3', 'introduce': '历险/动作'},
10         {'_id': 3, 'rank': '14', 'movie': '小白历险记','star': '8.4', 'introduce': '历险/动作'}
11        ]
12x = table.insert_many(datas)  #插入多条
13print(x.acknowledged)
14
15

四、更新数据

  • update_one()

  • update_many()


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1import pymongo
2
3client = pymongo.MongoClient("mongodb://localhost:27017/")  # 连接MongoDB
4db = client.douban        #选择数据库douban,等同于db = client['douban']
5table = db.movies    #选择数据表,等同于table = db['movies']
6
7# data = {'rank': '12', 'movie': '大白历险记'}
8# new_data = {'$set':{'rank': '21', 'movie': '二郎历险记'}}
9# table.update_one(data, new_data)    #更新一条语句
10
11data = {'movie':{'$regex':'^大白'}}       #正则查找
12new_data = {'$set': {'introduce': '喜剧/动作'}}
13table.update_many(data,new_data)        #更新多条
14
15x = table.find({'introduce': '喜剧/动作'})
16print(list(x))
17
18

五、删除数据

  • delete_one()

  • delete_many()

  • drop()


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1import pymongo
2
3client = pymongo.MongoClient("mongodb://localhost:27017/")  # 连接MongoDB
4db = client.douban  # 选择数据库douban,等同于db = client['douban']
5table = db.movies  # 选择数据表,等同于table = db['movies']
6
7# data = {'rank': '12', 'movie': '大白历险记'}
8# table.delete_one(data)  #删除一条
9
10datas = {'movie': {'$regex': '^大白'}}
11x = table.delete_many(datas)
12# table.delete_many()     #delete_many()没有参数的话会把表里面所有数据都删除
13
14print(x.deleted_count)        #统计删除了多少条数据
15
16# table.drop()        #删除table表
17
18

六、排序数据

  • sort()


1
2
3
4
5
6
7
8
9
10
1import pymongo
2
3client = pymongo.MongoClient("mongodb://localhost:27017/")  # 连接MongoDB
4db = client.douban  # 选择数据库douban,等同于db = client['douban']
5table = db.movies  # 选择数据表,等同于table = db['movies']
6
7x = table.find().sort('star',1)        #1是升序,-1是降序,默认升序
8print(list(x)[0])
9
10

给TA打赏
共{{data.count}}人
人已打赏
安全技术

c++ vector

2022-1-11 12:36:11

安全运维

用Hadoop构建电影推荐系统

2021-12-12 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索