(一)
1.编写一个Python程序,在MongoDB中插入多条数据,包含如下字段:职位标题,发布者,内容,发表时间,职位关键字(Python或Java或C++),职位城市,公司名称,薪水。
2.导入正确的第三方模块。
3.将上述数据保到MongoDB集合中。
4.修改第一个职位关键字为Python的数据,将关键字改为 java。
5.查询出所有的职位关键字为Python的岗位信息。
6.查询出发表时间大于今天0点的岗位信息。
7.查询出所有的发表时间大于今天12点,小于今天18点的岗位信息。
8.使用skip和limit查询出第三条数据。
9.按照发表时间进行降序,输出所有的招聘数据。
10.每道题要有合理的注释。
from pymongo import MongoClient
import datetime
client = MongoClient(host='127.0.0.1',port=27017)
col2 = client['2106a']['test2']
data = [
{'标题': 'python火了', '发布者': '刘红光', '发表时间': datetime.datetime(2023, 11, 26, 1, 2, 3), '关键字': 'python',
'城市': '坤西市', '公司': '坤东有限公司', '薪水': 1800},
{'标题': 'bt2', '发布者': '程继超', '发表时间': datetime.datetime(2023, 1, 26, 1, 2, 3), '关键字': 'python',
'城市': '坤西市', '公司': '坤东有限公司', '薪水': 2800},
{'标题': '180岁厉害了', '发布者': '张康婕', '发表时间': datetime.datetime(2023, 12, 26, 1, 2, 3),
'关键字': 'python', '城市': '坤西市', '公司': '坤东有限公司', '薪水': 3800}]
col2.delete_many({})
col2.insert_many(data)
col2.update_one({'关键字':'python'},{'$set':{'关键字':'java'}})
print(list(col2.find()))
print(list(col2.find({'关键字':'python'})))
print(list(col2.find({'发表时间':{'$gt':datetime.datetime(2023, 11, 16)}})))
print(list(col2.find({'发表时间':{'$gt':datetime.datetime(2023, 1, 16),'$lt':datetime.datetime(2023, 12, 16)}})))
list8 = list(col2.find({},{'_id':0}).skip(2).limit(3))
print(list8)
list9 = list(col2.find().sort('发表时间',-1))
print(list9)
(二)
1.编写一个Python程序,在MongoDB中插入多条数据,包含如下字段:职位标题,发布者,内容,发表时间,职位关键字(Python或Java或C++),职位城市,公司名称,薪水。
2.导入正确的第三方模块。
3.将上述数据保到MongoDB集合中。
4.查询出所有的数据,按照薪水进行降序排序。
5.给职位标题字段添加一个索引。
6.使用MongoDB聚合,计算每个发布者发布的岗位的数量。
7.使用MongoDB聚合,计算每个城市的岗位的数量。
8.使用MongoDB聚合,计算每个公司发布的岗位的数量。
9.查询出薪水在 10000-15000之间的招聘数据。
10.每道题要有合理的注释。
from pymongo import MongoClient
import datetime
client = MongoClient(host='127.0.0.1',port=27017)
col3 = client['2106a']['test3']
data = [
{'标题': 'python火了', '发布者': '刘红光', '发表时间': datetime.datetime(2023, 11, 26, 1, 2, 3), '关键字': 'python',
'城市': '坤西市', '公司': '坤东有限公司', '薪水': 13000},
{'标题': 'bt2', '发布者': '程继超', '发表时间': datetime.datetime(2023, 1, 26, 1, 2, 3), '关键字': 'python',
'城市': '坤西市', '公司': '坤东有限公司', '薪水': 2800},
{'标题': '180岁厉害了', '发布者': '张康婕', '发表时间': datetime.datetime(2023, 12, 26, 1, 2, 3),
'关键字': 'python', '城市': '坤西市', '公司': '坤东有限公司', '薪水': 3800}]
col3.delete_many({})
col3.insert_many(data)
col3.create_index('标题')
list6 = list(col3.aggregate(pipeline=[
{'$group':{'_id':'$发布者','数量':{'$sum':1}}},
]))
list7 = list(col3.aggregate(pipeline=[
{'$group':{'_id':'$城市','随便':{'$sum':1}}}
]))
list8 = list(col3.aggregate(pipeline=[
{'$group':{'_id':'$公司','数量':{'$sum':1}}}
]))
list9 = list(col3.aggregate(pipeline=[
{'$match':{'薪水':{'$gt':10000,'$lt':15000}}},
{'$project':{'_id':0}}
]))
list10 = list(col3.find())
print(list10)
list11 = list(col3.aggregate(pipeline=[
{'$match':{}}
]))
print(list11)
(三)
1.编写一个Python程序,在MongoDB中插入多条数据,包含如下字段:职位标题,发布者,内容,发表时间,职位关键字(Python或Java或C++),职位城市,公司名称,薪水。
2.导入正确的第三方模块。
3.将上述数据保到MongoDB集合中。
4.查询出所有的数据,要求只包含 职位标题、发表时间、职位城市、公司名称,薪水 的信息。
5.使用 type操作符,查询公司名称为 string 类型的数据。
6.使用MongoDB聚合,查询出薪水在10000-20000之间的数据。然后分组计算每个公司的岗位数量。
7.查询工资在[0, 10000), [10000, 15000), [15000, 20000)三个区间的数量。
8.计算出每个城市招聘数量占有岗位总数的占比。
9.清空集合中所有的数据。
10.每道题要有合理的注释。
from pymongo import MongoClient
import datetime
import pandas as pd
client = MongoClient(host='127.0.0.1',port=27017)
col4 = client['2106a']['test4']
data = [
{'标题': 'python火了', '发布者': '刘红光', '发表时间': datetime.datetime(2023, 11, 26, 1, 2, 3), '关键字': 'python',
'城市': '坤西市', '公司': '坤东有限公司', '薪水': 13000},
{'标题': 'bt2', '发布者': '程继超', '发表时间': datetime.datetime(2023, 1, 26, 1, 2, 3), '关键字': 'python',
'城市': '坤西市', '公司': '坤东有限公司', '薪水': 2800},
{'标题': '180岁厉害了', '发布者': '张康婕', '发表时间': datetime.datetime(2023, 12, 26, 1, 2, 3),
'关键字': 'python', '城市': '坤西市', '公司': '坤东有限公司', '薪水': 3800}]
col4.delete_many({})
col4.insert_many(data)
print(list(col4.find({},{'_id':0,'发布者':0,'关键字':0})))
print(list(col4.find({'公司':{'$type':'string'}})))
list6 = list(col4.aggregate(pipeline=[
{'$match':{'薪水':{'$gt':10000,'$lt':20000}}},
{'$group':{'_id':'$公司','数量':{'$sum':1}}}
]))
print(list6)
df = pd.DataFrame(data)
bins = [0,10000,15000,20000]
labels = ['0-10000','10001-15000','15001-20000']
df['薪水区间']=pd.cut(df['薪水'],labels=labels,bins=bins)
print(df['薪水区间'])
col4.delete_many({})