Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >46 - 将xml文档保存在MongoDB数据库中

46 - 将xml文档保存在MongoDB数据库中

原创
作者头像
ruochen
修改于 2021-05-31 02:29:59
修改于 2021-05-31 02:29:59
2.3K0
举报

1. 请解释什么是NoSQL数据库,有哪些类型的NoSQL数据库,请说出这些数据库的典型产品,以及每个类型的NoSQL数据库的适用场景

  • NoSQL: Not Only SQL
  • 键值(key-value)数据库
    • Redis、Riak、Memcached
    • 适用场景: 用来存储用户信息,比如会员、配置文件、参数、购物车等
  • 文档(Document-Oriented)类型
    • MongoDB
    • CouchDB
    • RavenDB
    • 适用场景: 日志、分析数据
  • 列存储数据库
    • HBase
    • Cassandra
    • 适用场景: 日志、博客平台。 标签可以存储到一列、类别可以存储到另一列、文章可以存储到另外一列
  • 图数据库
    • Neo4J
    • OrientDB
    • 适用场景
      • 在一些关系型强的数据库可以使用
      • 推荐引擎

2. 将xml文档保存到MongoDB数据库中,并查询文档中的数据

products.xml

代码语言:txt
AI代码解释
复制
<!-- products.xml -->
<root>
	<products>
		<product uuid="1234">
			<id>10000</id>
			<name>iphone9</name>
			<price>9999</price>
		</product>
			<product uuid="4321">
			<id>20000</id>
			<name>特斯拉</name>
			<price>800000</price>
		</product>
			<product uuid="5678">
			<id>30000</id>
			<name>Mac Pro</name>
			<price>40000</price>
		</product>
	</products>
</root>
代码语言:txt
AI代码解释
复制
'''
pip install pymongo
'''
from pymongo import *

Client = MongoClient()
db = Client.data
products = db.products
products.delete_many({'price':{'$gt': 0}})

import xmltodict

f = open('products.xml', 'rt', encoding='utf-8')
xml = f.read()
f.close()

print(xml)

d = xmltodict.parse(xml)
productList = d['root']['products']['product']
print(productList)

for product in productList:
    product['price'] = int(product['price'])
    productId = products.insert_one(product).inserted_id
    print(productId)
    
for product in products.find({'price': {'$gt':10000}}):
        print(product)
代码语言:txt
AI代码解释
复制
<!-- products.xml -->
代码语言:txt
AI代码解释
复制
<root>
代码语言:txt
AI代码解释
复制
    <products>
代码语言:txt
AI代码解释
复制
        <product uuid='1234'>
代码语言:txt
AI代码解释
复制
            <id>10000</id>
代码语言:txt
AI代码解释
复制
            <name>iphone9</name>
代码语言:txt
AI代码解释
复制
            <price>9999</price>
代码语言:txt
AI代码解释
复制
        </product>
代码语言:txt
AI代码解释
复制
        <product uuid='4321'>
代码语言:txt
AI代码解释
复制
            <id>20000</id>
代码语言:txt
AI代码解释
复制
            <name>特斯拉</name>
代码语言:txt
AI代码解释
复制
            <price>800000</price>
代码语言:txt
AI代码解释
复制
        </product>
代码语言:txt
AI代码解释
复制
        <product uuid='5678'>
代码语言:txt
AI代码解释
复制
            <id>30000</id>
代码语言:txt
AI代码解释
复制
            <name>Mac Pro</name>
代码语言:txt
AI代码解释
复制
            <price>40000</price>
代码语言:txt
AI代码解释
复制
        </product>
代码语言:txt
AI代码解释
复制
    </products>
代码语言:txt
AI代码解释
复制
</root>
代码语言:txt
AI代码解释
复制
[OrderedDict([('@uuid', '1234'), ('id', '10000'), ('name', 'iphone9'), ('price', '9999')]), OrderedDict([('@uuid', '4321'), ('id', '20000'), ('name', '特斯拉'), ('price', '800000')]), OrderedDict([('@uuid', '5678'), ('id', '30000'), ('name', 'Mac Pro'), ('price', '40000')])]
代码语言:txt
AI代码解释
复制
5e5e77236a8c0732e4edc4e4
代码语言:txt
AI代码解释
复制
5e5e77236a8c0732e4edc4e5
代码语言:txt
AI代码解释
复制
5e5e77236a8c0732e4edc4e6
代码语言:txt
AI代码解释
复制
{'_id': ObjectId('5e5e77236a8c0732e4edc4e5'), '@uuid': '4321', 'id': '20000', 'name': '特斯拉', 'price': 800000}
代码语言:txt
AI代码解释
复制
{'_id': ObjectId('5e5e77236a8c0732e4edc4e6'), '@uuid': '5678', 'id': '30000', 'name': 'Mac Pro', 'price': 40000}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
40 - xml文档与字典之间的互相转换
1. 如何将一个字典转换为xml文档,并将该xml文档保存成文本文件 ''' dicttoxml pip install dicttixml ''' import dicttoxml from xml.dom.minidom import parseString d = [20, 'names', {'name': 'Bill', 'age': '30', 'salary': 2000}, {'name': 'Mike', 'age': '20', 'salary':
ruochen
2021/05/27
8480
40 - xml文档与字典之间的互相转换
Python 小组学习 Week3-Task3
针对本周的学习主题,如果单纯来写这些知识点,自己没有细致的看书,没有无异化的见解,不对概念性东西照搬了。总结一些这几天看的面试题目,题目中无形中包含了这些基础知识点。
程序员小跃
2020/02/26
1.5K0
MongoDB 挑战传统数据库聚合查询,干不死他们的
说句不怕笑话的话,MongoDB使用也有6 7 8 年了,但对于聚合一般我是抗拒的,可能是MOGNODB 3.X落下的顽疾,一听到用MongoDB 做聚合操作,一般都不想听 不想听。但时代不一样,MongoDB已经走到了 8.0UP,聚合早就和之前不一样了。
AustinDatabases
2024/05/10
1510
MongoDB  挑战传统数据库聚合查询,干不死他们的
39 - 读取XML节点和属性值
在当前目录下有一个products.xml 文件,要求读取该文件中products节点的所有子节点的值以及子节点的属性值 <!-- products.xml --> <root> <products> <product uuid="1234"> <id>10000</id> <name>iphone9</name> <price>9999</price> </product> <product uuid="4321"> <id>20000</id> <name>
ruochen
2021/05/25
2.6K0
39 - 读取XML节点和属性值
MongoDB数据库的基本使用总结
江湖有缘
2023/09/14
1.5K0
MongoDB数据库的基本使用总结
传统的关系型数据库与NOSQL数据库间的对应关系、MongoDB的安装以及使用、 MongoDB中针对于MapReduce的实现、MongoDB数据库的用户管理、使用Java操作MongoDB数据库
MongoDB数据库是现在使用较为广泛的数据库,但是使用它都是需要一定的应用环境,在实际的开发环境之中,传统的关系型数据库依然是使用的主体,因为这样的数据属于结构化数据,而MongoDB这样的NOSQL数据库只是一个辅助,与Node.JS结合的时候它就是主力。
爱明依
2019/03/12
1K0
快速搭建属于自己的mongodb数据库
okaychen
2018/01/05
1.4K0
快速搭建属于自己的mongodb数据库
听说MongoDB你很豪横?-------------MongoDB数据库基础详解
传统的关系型数据库(如MySQL) ,在数据操作的"三高需求以及应对Web2.0的网站需求面前,显得力不从心。 解释:“三高”需求: ●High performance -对数据库并发读写的需求。 ●Huge Storage -对海量数据的高效率存储和访问的需求。 ●High Scalability & High Availability-对数据库的高可扩展性和高可用性的需求。
不吃小白菜
2020/09/15
1.1K0
python-Python与MongoDB数据库-MongoDB数据库的基本知识
MongoDB是一种开源的、面向文档的NoSQL数据库,它使用JSON类似的文档格式存储数据。MongoDB具有高度的可伸缩性和性能,并且支持复杂的查询和聚合操作。在Python中,我们可以使用pymongo驱动程序来连接和操作MongoDB数据库。
玖叁叁
2023/04/22
7660
Python中的xmltodict库:轻松处理XML数据,Web前端、配置文件必备知识
xmltodict是一个Python库,它提供了将XML数据转换为Python字典(以及将字典转换回XML)的功能。这个库非常适合处理需要解析或生成XML数据的应用程序,如Web服务客户端、配置文件读取器和数据转换器等。
小白的大数据之旅
2024/11/20
1670
一文快速入门MongoDB数据库
要在 Windows 系统上安装 MongoDB,首先需要在 MongoDB 的官网(https://www.mongodb.com/try/download/community)下载 MongoDB 的安装包,如下图所示:
Maynor
2021/12/07
1.2K0
一文快速入门MongoDB数据库
小程序的数据管理与云数据库应用
在微信小程序开发中,数据管理是核心环节之一。数据的存储、读取、更新和删除操作决定了应用的性能和用户体验。 本篇文章将详细讲解小程序的数据管理方式,并重点介绍云数据库(Cloud Database)的应用,通过具体示例帮助理解其使用场景和优化方法。
LucianaiB
2025/01/29
2600
MongoDB数据库之主从复制配置实战
MongoDB主从复制是一种数据同步机制,通过该机制可以将一个 MongoDB 实例的数据复制到其他多个实例中,以提高数据的可靠性和可用性。在主从复制中,有一个主节点(也称为主服务器),负责接收写入请求并将数据同步到从节点(也称为从服务器)。从节点只能处理读操作,而不允许写入操作。
江湖有缘
2023/09/13
2.4K0
MongoDB数据库之主从复制配置实战
MongoDB数据库安装部署及优化使用
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引,如果用一句话来概括的话:MongoDB是一个高可用、分布式、灵活模式的文档数据库,用于大容量数据存储。
王先森sec
2023/04/24
7140
从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(四)
随着前端应用的日渐复杂,状态和数据管理成为了构建大型应用的关键。受 Redux 等项目的启发,Vue.js 团队也量身定做了状态管理库 Vuex。在这篇教程中,我们将带你熟悉 Store、Mutation 和 Action 三大关键概念,并升级迷你商城应用的前端代码。
一只图雀
2020/04/07
2.1K0
关系型数据库的瓶颈 与 优化
造成第三条语句执行时间如此长的主要原因就是大量的 OR 语句会导致 SQL 解析非常耗时.
BUG弄潮儿
2021/09/10
1.4K0
关系型数据库的瓶颈 与 优化
Spring Boot 与 Kotlin 使用MongoDB数据库
下面就来简单介绍一下 MongoDB,并且通过一个例子来介绍 SpringBoot中对 MongoDB访问的配置和使用。
全科
2018/08/15
1.7K0
「R」操作数据库
关系型数据库就是一个由表和表之间的关系组成的集合。数据库中的表和R中的数据框有相同地形式。表之间可以互相关联,让我们能够轻松合并多张表信息。
王诗翔呀
2022/01/21
1.3K0
「R」操作数据库
第二十九天-加强1-Junit&类加载&反射&Properties&BeanUtils&xml&动态代理&数据库【悟空教程】
第二十九天-加强1-Junit&类加载&反射&Properties&BeanUtils&xml&动态代理&数据库【悟空教程】
Java帮帮
2018/07/27
1.2K0
第二十九天-加强1-Junit&类加载&反射&Properties&BeanUtils&xml&动态代理&数据库【悟空教程】
缓存数据库Redis
Redis基本概念和NOSQL 1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库 1.1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点
不愿意做鱼的小鲸鱼
2022/09/24
2.7K0
缓存数据库Redis
推荐阅读
相关推荐
40 - xml文档与字典之间的互相转换
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档