python 链接mongo的若干问题解决


python链接Mongo

import pymongo

client = pymongo.MongoClient(host= '服务器地址和端口号')
db = client['fuel-history'] #数据库
collection = db['xch'] #数据库中对应的表

获取数据库中所有表名

collist = db. list_collection_names() #获取所有表名
collist = pd.DataFrame(collist,columns = ['colname']) #将获取信息保存成dataframe,其中列名为'colname'
collist.sort_values(by = ['colname'],inplace=True)  #按照colname的值重新排序,排序
collist.index = range(len(collist)) #对排序后的对象行号重新定义
print(collist)

#将获取信息导出成csv文件
collist.to_csv('path',encoding='utf-8',index=1) #path为保存路径

其中
inplace = True:不创建新的对象,直接对原始对象进行修改;
inplace = False:对数据进行修改,创建并返回新的对象承载其修改结果。
默认是False,即创建新的对象进行修改,原对象不变。

获取数据库中包含指定字段的表名

#链接数据库
def mongo_connent():
    db = pymongo.MongoClient(host= '192.168.1.42')['fuel-history']
    collist = db.list_collection_names()
    collist = pd.DataFrame(collist,columns = ['colname'])
    collist.sort_values(by = ['colname'],inplace=True)
    collist.index = range(len(collist))
    return collist

#匹配字段,找出表名包含如下字段的
str = re.compile('HT.*2022-03-.*VARIABLE')

#创建一个df,将查询结果存入其中
collistsmall = pd.DataFrame()

#调用函数,获取数据库中的所有表名
collist = mongo_connent()

#将获取的所有表名和字段进行匹配,匹配成功则将其添加入新建的collistsmall中
for i in collist.index: # 根据行号遍历dataframe
    item = collist.loc[i,'colname'] # python中如何找到某特定单元格的内容
    if (re.match(str, item) != None): # python中函数返回为空是等于None
        collistsmall_name = item
        collistsmall = collistsmall.append(pd.DataFrame({'code':[collistsmall_name[:25]]}),ignore_index=True)
print(collistsmall)

#将获取信息导出成csv文件
collistsmall.to_csv('path',encoding='utf-8',index=1) #path为保存路径

获取表中所有字段的名称

Tag = collection.distinct('tag')
print(Tag)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值