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)