【2024Python教程】-MongoDB数据库连接

2024-06-22 02:52

本文主要是介绍【2024Python教程】-MongoDB数据库连接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MongoDB数据库连接实战

 MongoDB数据库连接

  • 首先,通过以下代码连接到本地的MongoDB:
client = MongoClient('mongodb://localhost:27017/')
  • 然后,创建或切换到名为pdf_contents的数据库:
db = client['pdf_contents']
  • pdf_contents数据库中,创建或切换到名为contents的集合(相当于关系数据库中的表):
collection = db['contents']
  • 在遍历PDF文件的循环中,通过以下代码将每个PDF文件的信息插入到contents集合中:
data = {"filename": filename,"text": text,"category": category
}
collection.insert_one(data)

这里data是一个Python字典,包含了PDF文件名、文本内容和分类信息。collection.insert_one(data)将这个字典作为一个文档插入到contents集合中。

  • 每插入一个文档,就打印一行信息,表示该PDF文件已经处理并存储到MongoDB中。

所以,这段代码的作用是:遍历指定目录下的所有PDF文件,提取每个PDF文件的文本内容,对文本内容进行简单分类,然后将PDF文件名、文本内容和分类信息作为一个文档存储到MongoDB的pdf_contents数据库的contents集合中。


MongoDB实战

 举个例子,我们希望把很多份技术文档(PDF格式)转为TXT,并将文章内容,文章标题存到

MongoDB。

首先安装相关的库:

pip install PyPDF2  
pip install pymongo
pip install sys
pip install io

import PyPDF2  # PyPDF2库
from pymongo import MongoClient  # MongoDB Python驱动import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')# 连接到MongoDB数据库
client = MongoClient('mongodb://localhost:27017/')
db = client['pdf_contents']
collection = db['contents']# 定义一个函数来提取PDF文本内容
def extract_pdf_text(pdf_path):with open(pdf_path, 'rb') as pdf_file:pdf_reader = PyPDF2.PdfReader(pdf_file)text = ""for page_num in range(len(pdf_reader.pages)):page = pdf_reader.pages[page_num]text += page.extract_text()return text# 定义一个函数来对文本进行分类
def categorize_text(text):# 这里可以添加自定义的分类逻辑# 例如,根据关键词或机器学习模型对文本进行分类# 为了简单起见,我们假设只有两个类别:"技术"和"非技术"if "code" in text.lower() or "programming" in text.lower():category = "技术"else:category = "非技术"return category# 遍历指定目录下的所有PDF文件
import os
dir_path = "C:/pdf" #只需要在这里替换你的pdf文件夹pdf path
for filename in os.listdir(dir_path):if filename.endswith(".pdf"):pdf_path = os.path.join(dir_path, filename)text = extract_pdf_text(pdf_path)category = categorize_text(text)data = {"filename": filename,"text": text,"category": category}collection.insert_one(data)print(f"文件 {filename} 已处理并存储到MongoDB")

详细讲讲这里的MongoDB的数据连接

这篇关于【2024Python教程】-MongoDB数据库连接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083085

相关文章

【Altium】查找PCB上未连接的网络

【更多软件使用问题请点击亿道电子官方网站】 1、文档目标: PCB设计后期检查中找出没有连接的网络 应用场景:PCB设计后期,需要检查是否所有网络都已连接布线。虽然未连接的网络会有飞线显示,但是由于布线后期整板布线密度较高,虚连,断连的网络用肉眼难以轻易发现。用DRC检查也可以找出未连接的网络,如果PCB中DRC问题较多,查找起来就不是很方便。使用PCB Filter面板来达成目的相比DRC

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

Java面试题:通过实例说明内连接、左外连接和右外连接的区别

在 SQL 中,连接(JOIN)用于在多个表之间组合行。最常用的连接类型是内连接(INNER JOIN)、左外连接(LEFT OUTER JOIN)和右外连接(RIGHT OUTER JOIN)。它们的主要区别在于它们如何处理表之间的匹配和不匹配行。下面是每种连接的详细说明和示例。 表示例 假设有两个表:Customers 和 Orders。 Customers CustomerIDCus

关于如何更好管理好数据库的一点思考

本文尝试从数据库设计理论、ER图简介、性能优化、避免过度设计及权限管理方面进行思考阐述。 一、数据库范式 以下通过详细的示例说明数据库范式的概念,将逐步规范化一个例子,逐级说明每个范式的要求和变换过程。 示例:学生课程登记系统 初始表格如下: 学生ID学生姓名课程ID课程名称教师教师办公室1张三101数学王老师101室2李四102英语李老师102室3王五101数学王老师101室4赵六103物理陈

数据库期末复习知识点

A卷 1. 选择题(30') 2. 判断范式(10') 判断到第三范式 3. 程序填空(20') 4. 分析填空(15') 5. 写SQL(25') 5'一题 恶性 B卷 1. 单选(30') 2. 填空 (20') 3. 程序填空(20') 4. 写SQL(30') 知识点 第一章 数据库管理系统(DBMS)  主要功能 数据定义功能 (DDL, 数据定义语

给数据库的表添加字段

周五有一个需求是这样的: 原来数据库有一个表B,现在需要添加一个字段C,我把代码中增删改查部分进行了修改, 比如insert中也添入了字段C。 但没有考虑到一个问题,数据库的兼容性。因为之前的版本已经投入使用了,再升级的话,需要进行兼容处理,当时脑子都蒙了,转不过来,后来同事解决了这个问题。 现在想想,思路就是,把数据库的表结构存入文件中,如xxx.sql 实时更新该文件: CREAT

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

SQL Server中,添加数据库到AlwaysOn高可用性组条件

1、将数据添加到AlwaysOn高可用性组,需要满足以下条件: 2、更多具体AlwaysOn设置,参考:https://msdn.microsoft.com/zh-cn/library/windows/apps/ff878487(v=sql.120).aspx 注:上述资源来自MSDN。

SQL Server中,用Restore DataBase把数据库还原到指定的路径

restore database 数据库名 from disk='备份文件路径' with move '数据库文件名' to '数据库文件放置路径', move '日志文件名' to '日志文件存放置路径' Go 如: restore database EaseWe from disk='H:\EaseWe.bak' with move 'Ease

Steam邮件推送内容有哪些?配置教程详解!

Steam邮件推送功能是否安全?如何个性化邮件推送内容? Steam作为全球最大的数字游戏分发平台之一,不仅提供了海量的游戏资源,还通过邮件推送为用户提供最新的游戏信息、促销活动和个性化推荐。AokSend将详细介绍Steam邮件推送的主要内容。 Steam邮件推送:促销优惠 每当平台举办大型促销活动,如夏季促销、冬季促销、黑色星期五等,用户都会收到邮件通知。这些邮件详细列出了打折游戏、