mongodb数据库集合(表)的创建和数据修改
文章目录
- 前言
- 发现宝藏
- 一、集合的创建
- 二、集合的修改
- 三、数据插入数据库
- 四、清空数据库集合数据
前言
为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)
发现宝藏
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。
一、集合的创建
一、版面集合: catalogues
主键id(数据类型为整形)
关键字:keywords(数据类型为字符串)
isFuzzy: 0
搜索位置:searchArea(数据类型为字符串)
时间筛选:year(数据类型为时间类)
类型:form(数据类型为字符串)
领域:type(数据类型为字符串)
第几页:page(数据类型为整型)
来源:origin(数据类型为字符串)
source: 2
更新时间:updateTime(数据类型为时间类)二、内容 cards
主键:id (数据类型为整形)
标题:title
来源: origin
原始网页html dom结构:htmlcontent
清洗后的html dom结构:content
第几页:page(数据类型为字符串)
搜索位置:searchArea(数据类型为字符串)
时间筛选:year(数据类型为时间类)
类型:form(数据类型为字符串)
领域:type(数据类型为字符串)
地址:url(数据类型为字符串)
内容图片存储的位置:illustrations(数据类型为数组)
更新时间:updateTime(数据类型为时间类)
为了生成 MongoDB 数据库,你首先需要安装 MongoDB 数据库服务器,并确保你的 Python 环境中安装了 PyMongo,这是 MongoDB 官方提供的 Python 驱动程序。
接下来,你可以按照以下步骤创建一个 Python 脚本来实现数据库的创建和数据插入:
1.安装 MongoDB:在你的机器上安装 MongoDB 数据库服务器。你可以从 MongoDB 官方网站下载安装程序并按照说明进行安装。
’
2.安装 PyMongo:在你的 Python 环境中安装 PyMongo 包。你可以通过 pip 进行安装:
pip install pymongo
3.编写 Python 脚本:编写一个 Python 脚本来连接 MongoDB,并创建两个集合(catalogues 和 cards),然后将数据插入这两个集合。
下面是一个示例 Python 脚本:
from datetime import datetime
from pymongo import MongoClient# 连接 MongoDB 数据库服务器
client = MongoClient('mongodb://localhost:27017/')# 创建或选择数据库
db = client['my_database']# 创建或选择集合
catalogues_collection = db['catalogues']
cards_collection = db['cards']# 插入示例数据到 catalogues 集合
catalogue_data = {'id': 1,'keywords': 'example keyword','isFuzzy': '0','searchArea': 'example search area','year': datetime(2023, 1, 1),'form': 'example form','type': 'example type','page': 1,'origin': 'example origin','source': 2,'updateTime': datetime.now()
}
catalogues_collection.insert_one(catalogue_data)# 插入示例数据到 cards 集合
card_data = {'id': 1,'title': 'Example Title','origin': 'example origin','htmlcontent': '<html>Example HTML content</html>','content': 'Example content','page': 'example page','searchArea': 'example search area','year': datetime(2023, 1, 1),'form': 'example form','type': 'example type','url': 'example url','illustrations': ['illustration1.jpg', 'illustration2.jpg'],'updateTime': datetime.now()
}
cards_collection.insert_one(card_data)# 输出成功信息
print("Data inserted successfully into MongoDB.")
请注意,这只是一个示例脚本,用于演示如何连接 MongoDB 并将数据插入数据库中。在实际应用中,你可能需要根据你的需求来调整代码和数据结构。
二、集合的修改
要修改 MongoDB 中集合(Collection)的结构,你需要执行以下步骤:
1.连接到 MongoDB 数据库:首先,使用 Python 的 PyMongo 模块或 MongoDB 的客户端工具连接到你的 MongoDB 数据库。
2.备份数据:在修改集合结构之前,强烈建议对数据进行备份,以防止意外数据丢失。
3.修改集合结构:根据你的需求,修改集合结构可能涉及添加、删除或修改字段,或者重命名集合。下面是一些常见的操作:
-添加字段:可以通过更新现有文档或添加新文档的方式来添加字段。
-删除字段:使用 $unset 操作符从现有文档中删除字段。
-修改字段:可以使用 $set 操作符来修改现有文档中的字段值。
-重命名集合:使用 rename_collection() 方法重命名集合。
-验证修改:在修改集合结构后,验证修改是否正确。你可以查询集合以确保修改已成功应用,并且数据仍然可用和完整。
-更新应用程序代码:如果修改了集合结构,确保更新你的应用程序代码以反映这些更改。
以下是一个使用 PyMongo 修改 MongoDB 集合结构的示例代码:
from pymongo import MongoClient# 连接到 MongoDB
client = MongoClient('mongodb://localhost:27017/')
db = client['my_database']# 获取要修改的集合
collection = db['my_collection']# 添加新字段到文档
collection.update_many({}, {"$set": {"new_field": "default_value"}})# 删除字段
collection.update_many({}, {"$unset": {"old_field": 1}})# 重命名集合
db.rename_collection('old_collection', 'new_collection')# 验证修改
for doc in collection.find():print(doc)# 关闭连接
client.close()
在这个示例中,我们假设已经连接到了名为 my_database 的数据库,并且要修改其中名为 my_collection 的集合。我们添加了一个名为 new_field 的新字段,删除了名为 old_field 的旧字段,并将集合重命名为 new_collection。最后,我们验证了修改是否成功,并关闭了数据库连接。
三、数据插入数据库
为了将数据插入 MongoDB 数据库,你需要使用 PyMongo 模块来与 MongoDB 进行交互。在你的 main 函数中,你可以添加连接到数据库的代码,并在适当的地方插入数据。以下是一个简单的例子:
from pymongo import MongoClientdef main():# 本地 MongoDB 连接信息mongo_host = "127.0.0.1"mongo_port = 27017database_name = "your_database" # 替换为实际的数据库名称collection_name = "your_collection" # 替换为实际的集合名称# 连接到 MongoDBclient = MongoClient(mongo_host, mongo_port)db = client[database_name]collection = db[collection_name]# 现有数据或需要插入到 MongoDB 的数据data_to_insert = {'field1': 'value1','field2': 'value2','field3': 'value3',# 添加更多字段和值...}# 插入数据到 MongoDB 中的集合collection.insert_one(data_to_insert)# 关闭 MongoDB 连接client.close()# 程序主要逻辑...if __name__ == "__main__":main()
在上述代码中,替换 mongo_host、database_name 和 collection_name 为你实际的 MongoDB 连接信息和集合名称。然后,创建一个字典 data_to_insert 包含你要插入的字段和对应的值,最后使用 insert_one 方法将数据插入到 MongoDB 集合中。
确保在插入数据之前已经连接到了 MongoDB,并在完成数据插入后关闭连接。此外,确保在 main 函数中添加适当的程序逻辑,以便你的脚本执行其他操作。
四、清空数据库集合数据
清除 MongoDB 集合中的所有数据可以使用 delete_many({}) 方法,传入一个空的查询条件,这将删除集合中的所有文档。在你的情况下,你想要清除 catalogues 和 cards 集合中的所有数据,可以按照以下方式进行:
from pymongo import MongoClientdef clear_collection_data():# 本地 MongoDB 连接信息mongo_host = "127.0.0.1"mongo_port = 27017database_name = "your_database" # 替换为实际的数据库名称catalogues_collection_name = "catalogues" # 替换为实际的集合名称cards_collection_name = "cards" # 替换为实际的集合名称# 连接到 MongoDBclient = MongoClient(mongo_host, mongo_port)db = client[database_name]# 清除 catalogues 集合中的所有数据catalogues_collection = db[catalogues_collection_name]catalogues_collection.delete_many({})# 清除 cards 集合中的所有数据cards_collection = db[cards_collection_name]cards_collection.delete_many({})# 关闭 MongoDB 连接client.close()if __name__ == "__main__":clear_collection_data()
在这个例子中,我们定义了一个名为 clear_collection_data 的函数,它连接到 MongoDB,然后使用 delete_many({}) 方法清除了 catalogues 和 cards 集合中的所有数据。请确保替换连接信息、数据库名称以及集合名称为你实际的值。
相关文章:
mongodb数据库集合(表)的创建和数据修改
文章目录 前言发现宝藏一、集合的创建二、集合的修改三、数据插入数据库四、清空数据库集合数据 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作…...
MySQL 的UI
MySQL也有许多用户界面(UI)工具,用于管理数据库。以下是一些流行的MySQL UI工具: 1. **MySQL Workbench:** 由MySQL官方提供,功能强大,支持数据库建模、SQL开发、服务器配置等。 2. **DBeaver&a…...
Leetcode 3026. Maximum Good Subarray Sum
Leetcode 3026. Maximum Good Subarray Sum 1. 解题思路2. 代码实现 题目链接:3026. Maximum Good Subarray Sum 1. 解题思路 这一题的话主要就是要快速遍历所有的good subarray并快速获得每一个good subarray的和的最大值。 因此,问题就主要就成了两…...
elementUI之el-form-item的嵌套的场景
像这种,计费规则这几个字而且带红点,外观上是el-form-item,但是其并没有直接和控件进行相关联,这是和其他的el-form-item不同之处。所以这里就得用上嵌套了。也就是说elementUI中el-form-item是可以嵌套使用的。...
Linux项目自动化构建工具之make/Makefile演示gcc编译
文章目录 一、背景二、如何使用?三、原理四、关于make的问题五、再次理解/编写makefile依赖关系依赖方法 六、原理讲解项目清理makefile是支持变量的取消执行make后显示命令依赖方法可以多行 一、背景 会不会写makefile,从一个侧面说明了一个人是否具备…...
ChatGPT 官方中文页面上线
根据页面显示,OpenAI 现已推出 ChatGPT 的多语言功能 Alpha 版测试,允许用户选择不同语言的界面进行交互。 如下图所示,ChatGPT 会检测系统当前所使用的语言,并提示用户进行语言切换。 用户也可通过设置页面选择其他语言。目前&a…...
算法学习——华为机考题库10(HJ64 - HJ69)
算法学习——华为机考题库10(HJ64 - HJ69) HJ64 MP3光标位置 描述 MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲&a…...
[office] Excel中去除表格小数点后面数字的操作方法 #知识分享#学习方法
Excel中去除表格小数点后面数字的操作方法 如何去除EXCEL表格中小数点后面的数字,双击表格时只留有整数,今天,小编就教大家在Excel中去除表格小数点后面数字的操作方法。 Excel中去除表格小数点后面数字的操作步骤如下: 如图&…...
2023年度报告
欲买桂花同载酒,终不似,少年游! 思来想去,虽然迟到一月,还是觉得要写上一篇年度总结报告回忆过去的一年(准确来说是半年,毕竟前年的年终总结报告是在去年的5月末写的), …...
基于springboot智慧养老平台源码和论文
首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。本项…...
IDEA插件ChatGPT - Easycode安装使用
IDEA插件ChatGPT - Easycode简介 ChatGPT - Easycode 是一个由 OpenAI 开发的 IntelliJ IDEA 插件,它可以利用 ChatGPT 的强大语言生成能力,帮助开发人员提高编码效率。 主要功能: 代码生成:可以根据自然语言描述生成代码&…...
设置 相关
记录使用过程中做的设置相关事宜。方便后续查询 vscode如何自动生成html格式: vscode快速生成html模板 --两种方法,亲测有用_vscode自动生成html模板-CSDN博客 使用第二个方式。存储html格式后缀。输入!,vscode自动补全。 安装…...
argcomplete,一个超酷 Python 库!
前言 大家好,今天为大家分享一个超酷的 Python 库 - argcomplete。 Github地址:https://github.com/kislyuk/argcomplete 命令行工具是开发者和系统管理员的得力助手,但随着命令行选项的增多,用户可能会感到困惑。Python 中的 a…...
<设计模式>单例模式懒汉和饿汉
目录 一、单例模式概述 二、懒汉模式和饿汉模式 1.饿汉模式 1.1代码实现 1.2实现细节 1.3模式优劣 2.懒汉模式 2.1代码实现 2.2实现细节 2.3模式优劣 三、多线程下的线程安全问题 1.懒汉和饿汉线程安全问题分析 1.1安全的饿汉模式 1.2不安全的懒汉模式 2.懒汉线程…...
二分查找------蓝桥杯
题目描述: 请实现无重复数字的升序数组的二分查找 给定一个元素升序的、无重复数字的整型数组 nums 和一个目标值 target,写一个函数搜索 nums 中的target,如果目标值存在返回下标 (下标从0 开始),否则返回-1 数据范围: 0 < l…...
今日arXiv最热NLP大模型论文:微软提出SliceGPT,删除25%模型参数,性能几乎无损
引言:探索大型语言模型的高效压缩方法 随着大型语言模型(LLMs)在自然语言处理领域的广泛应用,它们对计算和内存资源的巨大需求成为了一个不容忽视的问题。为了缓解这些资源限制,研究者们提出了多种模型压缩方法&#…...
ChatGPT实战100例 - (13) 写一个属于自己的 ChatGPT 新版 WebUI
文章目录 ChatGPT实战100例 - (13) 写一个属于自己的 ChatGPT 新版 WebUI一、ChatGPT(OpenAI)的新版API调用1.1 环境变量配置与调用1.2 新版api调用1.3 命令行流式输出二、Gradio制作自己的聊天WebUI2.1 流式WebUI2.2 样式调整三、总结参考ChatGPT实战100例 - (13) 写一个属于自…...
【计算机学院寒假社会实践】——服务走进社区,共绘幸福蓝图
为深入贯彻落实志愿者服务精神,扎实推进志愿者服务质量,2024年1月28日,曲阜师范大学计算机学院“青年扎根基层,服务走进社区”社会实践队队员周兴睿在孙宇老师的指导下,来到山东省滨州市陈集街道社区开展了为期一天的“…...
[python] 过年燃放烟花
目录 新年祝福语 一、作品展示 二、作品所用资源 三、代码与资源说明 四、代码库 五、完整代码 六、总结 新年祝福语 岁月总是悄然流转,让人感叹时间的飞逝,转眼间又快到了中国传统的新年(龙年)。 回首过去…...
数据结构与算法:图论(邻接表板子+BFS宽搜、DFS深搜+拓扑排序板子+最小生成树MST的Prim算法、Kruskal算法、Dijkstra算法)
前言 图的难点主要在于图的表达形式非常多,即数据结构实现的形式很多。算法本身不是很难理解。所以建议精通一种数据结构后遇到相关题写个转换数据结构的接口,再套自己的板子。 邻接表板子(图的定义和生成) public class Graph…...
黑丝空姐-造相Z-Turbo场景应用:为你的内容创作提供无限灵感
黑丝空姐-造相Z-Turbo场景应用:为你的内容创作提供无限灵感 1. 镜像概述与核心能力 黑丝空姐-造相Z-Turbo是一款基于Xinference部署的文生图模型服务,通过gradio提供直观的交互界面。该镜像专注于生成特定风格的视觉内容,为创意工作者提供高…...
Lingbot-Depth-Pretrain-ViTL-14 模型压缩与加速:面向边缘设备的部署优化教程
Lingbot-Depth-Pretrain-ViTL-14 模型压缩与加速:面向边缘设备的部署优化教程 想让一个像 Lingbot-Depth-Pretrain-ViTL-14 这样的大模型在树莓派、Jetson 这类小设备上跑起来,是不是感觉像让一头大象挤进小轿车?直接部署,设备可…...
Pixel Couplet Gen多场景落地:政务公众号/电商首页/校园迎新展板
Pixel Couplet Gen多场景落地:政务公众号/电商首页/校园迎新展板 1. 项目概览 Pixel Couplet Gen是一款基于ModelScope大模型驱动的创新型春联生成工具。与传统春联设计不同,它融合了8-bit像素游戏风格与传统文化元素,创造出独特的数字春节…...
一、RuoYi-Vue3项目模块化架构与二次开发实战
1. RuoYi-Vue3模块化架构深度解析 第一次接触RuoYi-Vue3时,最让我惊艳的就是它清晰的模块化设计。这个基于Spring BootVue3的前后端分离框架,通过六大核心模块的巧妙组合,既保证了功能完整性,又为二次开发留足了空间。就像搭积木一…...
Linux音频音量太小?别急着改代码,试试amixer这个终端神器
Linux音频音量调整终极指南:告别代码级修改,掌握amixer命令行艺术 当你在深夜调试语音识别项目时,突然发现树莓派录制的样本几乎听不见;或是准备录制技术教程视频时,Ubuntu系统的输出音量小得可怜——这种场景下&#…...
PhotoMaker性能基准测试终极指南:建立你的AI人像生成速度参考标准
PhotoMaker性能基准测试终极指南:建立你的AI人像生成速度参考标准 【免费下载链接】PhotoMaker 项目地址: https://ai.gitcode.com/hf_mirrors/TencentARC/PhotoMaker 想要了解PhotoMaker的实际性能表现吗?作为一款革命性的AI人像生成工具&#…...
OneDrive导致桌面图标变白的解决方案
OneDrive导致桌面图标变白的原因主要是由于OneDrive的同步功能或图标缓存损坏。当使用OneDrive的“释放空间”功能时,可能会导致图标变为空白页或默认图标。此外,图标缓存损坏也可能导致图标变白。解决方法:1. 调整OneDrive设置:在…...
Beyond ChatGPT: Building Physical World AI with PaLM-E and VoxPoser (Hands-on Guide)
从语言模型到物理世界操作:PaLM-E与VoxPoser实战指南 当ChatGPT在对话中展现出惊人的语言理解能力时,一个更激动人心的问题浮现:如何让AI系统突破虚拟界限,在物理世界中执行复杂任务?这正是PaLM-E与VoxPoser这类多模态…...
NVIDIA Profile Inspector终极指南:如何免费解锁显卡隐藏性能
NVIDIA Profile Inspector终极指南:如何免费解锁显卡隐藏性能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 想要让游戏运行更流畅、画面更清晰吗?NVIDIA显卡驱动中隐藏着大量可…...
【限时开源】Polars 2.0清洗模板库V1.0发布:含金融时序对齐、电商ID映射、日志正则归一化等9大高复用Pipeline
第一章:Polars 2.0大规模数据清洗技巧入门到精通教程 Polars 2.0 是专为高性能、内存安全与并行计算设计的 DataFrame 库,其惰性执行引擎与零拷贝语义使其在处理 GB 级别结构化数据时显著优于 Pandas。本章聚焦真实场景下的数据清洗实践,涵盖…...
