Python连接MongoDB并进行一些简单操作


初始化

import pandas as pd
from pymongo import MongoClient
#从Excel中读取信息,不使用第一行作为索引
data = pd.read_excel('前程无忧python职位信息.xlsx',header = None)
#将第一行作为存入数据库时的索引
namespace = data.loc[0].tolist()

存数据

def save_mongodb():
    #设置了auth=True时这样连接
    client = MongoClient("mongodb://user:pwd@localhost:27017")
    #否则这样连接
    #client = MongoClient("localhost","27017")
    #选择数据库,不存在则会创建
    db = client.job_51
    #选择表单,不存在则会创建
    collection = db.data
    #从第二行开始存数据
    for i in range(1,len(data)):
        #将信息加载为字典
        job_info = dict(zip(namespace,data.loc[i].tolist()))
        #插入一条信息
        collection.insert_one(job_info)

读数据

def select_mongodb():
    #同上
    client = MongoClient("mongodb://user:pwd@localhost:27017")
    db = client.job_51
    collection = db.data
    #从表单中查询符合条件的信息
    #如果需要全部信息则将find后面小括号中的内容删掉
    res = collection.find({
    '学历要求': '本科', 
    '月薪(元)': {'$gte': 15000}, 
    '$or': [{
            '经验要求': '1年经验', 
            '经验要求': '3-4年经验'
        }]
    })
    #使用pandas加载数据
    info = pd.DataFrame(list(res))
    #删除数据库的“主键”
    del info["_id"]
    #筛选所需信息所在的列,如果需要全部列则注释该行
    info = info[["职位","地区","月薪(元)","职位详情"]]
    #将筛选后的信息存入Excel
    info.to_excel("筛选职位.xlsx")