当前位置: 首页 > 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 集合中的所有数据。请确保替换连接信息、数据库名称以及集合名称为你实际的值。

相关文章:

  • 虹科技术|一文详解IO-Link Wireless技术如何影响工业无线自动化
  • MySQL分区的优缺点
  • 分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别
  • 力扣热门100题刷题笔记 - 10. 正则表达式匹配
  • C语言顺序表
  • 【图论】基环树
  • 16.docker删除redis缓存数据、redis常用基本命令
  • 关于Linux和消息队列常见的十道面试题
  • 如何使用VS Code编写小游戏并实现公网游玩本地游戏【内网穿透】
  • 100天精通Python(实用脚本篇)——第115天:基于selenium实现反反爬策略之隐藏浏览器指纹特征
  • Flask 入门5 :过滤器
  • gunicorn日志--access-logformat不起作用
  • 【SparkML系列3】特征提取器TF-IDF、Word2Vec和CountVectorizer
  • BZOJ0481. 树的重心之砍树Link Cut Centroids
  • C语言中10种常见的字符串函数你都掌握了吗?
  • 【个人向】《HTTP图解》阅后小结
  • create-react-app做的留言板
  • gf框架之分页模块(五) - 自定义分页
  • go append函数以及写入
  • HomeBrew常规使用教程
  • js继承的实现方法
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • React Transition Group -- Transition 组件
  • 大数据与云计算学习:数据分析(二)
  • 简单基于spring的redis配置(单机和集群模式)
  • 面试总结JavaScript篇
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 通过几道题目学习二叉搜索树
  • 微信支付JSAPI,实测!终极方案
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #162 (Div. 2)
  • $().each和$.each的区别
  • (HAL库版)freeRTOS移植STMF103
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (多级缓存)缓存同步
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)计算机毕业设计大学生兼职系统
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)scrum常见工具列表
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net生成的类,跨工程调用显示注释
  • [1525]字符统计2 (哈希)SDUT
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [Angular] 笔记 8:list/detail 页面以及@Input