当前位置: 首页 > news >正文

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.懒汉线程…...

二分查找------蓝桥杯

题目描述&#xff1a; 请实现无重复数字的升序数组的二分查找 给定一个元素升序的、无重复数字的整型数组 nums 和一个目标值 target&#xff0c;写一个函数搜索 nums 中的target&#xff0c;如果目标值存在返回下标 (下标从0 开始)&#xff0c;否则返回-1 数据范围: 0 < l…...

今日arXiv最热NLP大模型论文:微软提出SliceGPT,删除25%模型参数,性能几乎无损

引言&#xff1a;探索大型语言模型的高效压缩方法 随着大型语言模型&#xff08;LLMs&#xff09;在自然语言处理领域的广泛应用&#xff0c;它们对计算和内存资源的巨大需求成为了一个不容忽视的问题。为了缓解这些资源限制&#xff0c;研究者们提出了多种模型压缩方法&#…...

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) 写一个属于自…...

【计算机学院寒假社会实践】——服务走进社区,共绘幸福蓝图

为深入贯彻落实志愿者服务精神&#xff0c;扎实推进志愿者服务质量&#xff0c;2024年1月28日&#xff0c;曲阜师范大学计算机学院“青年扎根基层&#xff0c;服务走进社区”社会实践队队员周兴睿在孙宇老师的指导下&#xff0c;来到山东省滨州市陈集街道社区开展了为期一天的“…...

[python] 过年燃放烟花

目录 新年祝福语 一、作品展示 二、作品所用资源 三、代码与资源说明 四、代码库 五、完整代码 六、总结 新年祝福语 岁月总是悄然流转&#xff0c;让人感叹时间的飞逝&#xff0c;转眼间又快到了中国传统的新年&#xff08;龙年&#xff09;。 回首过去&#xf…...

数据结构与算法:图论(邻接表板子+BFS宽搜、DFS深搜+拓扑排序板子+最小生成树MST的Prim算法、Kruskal算法、Dijkstra算法)

前言 图的难点主要在于图的表达形式非常多&#xff0c;即数据结构实现的形式很多。算法本身不是很难理解。所以建议精通一种数据结构后遇到相关题写个转换数据结构的接口&#xff0c;再套自己的板子。 邻接表板子&#xff08;图的定义和生成&#xff09; public class Graph…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者&#xff0c;高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法&#xff0c;分为两大系列&#xff1a; 一、getElementBy... 系列 传统方法&#xff0c;直接通过 DOM 接口访问&#xff0c;返回动态集合&#xff08;元素变化会实时更新&#xff09;。…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...