前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >46 - 将xml文档保存在MongoDB数据库中

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

原创
作者头像
ruochen
修改2021-05-31 10:29:59
2.2K0
修改2021-05-31 10:29:59
举报

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
复制
<!-- 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
复制
'''
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
复制
<!-- products.xml -->
代码语言:txt
复制
<root>
代码语言:txt
复制
    <products>
代码语言:txt
复制
        <product uuid='1234'>
代码语言:txt
复制
            <id>10000</id>
代码语言:txt
复制
            <name>iphone9</name>
代码语言:txt
复制
            <price>9999</price>
代码语言:txt
复制
        </product>
代码语言:txt
复制
        <product uuid='4321'>
代码语言:txt
复制
            <id>20000</id>
代码语言:txt
复制
            <name>特斯拉</name>
代码语言:txt
复制
            <price>800000</price>
代码语言:txt
复制
        </product>
代码语言:txt
复制
        <product uuid='5678'>
代码语言:txt
复制
            <id>30000</id>
代码语言:txt
复制
            <name>Mac Pro</name>
代码语言:txt
复制
            <price>40000</price>
代码语言:txt
复制
        </product>
代码语言:txt
复制
    </products>
代码语言:txt
复制
</root>
代码语言:txt
复制
[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
复制
5e5e77236a8c0732e4edc4e4
代码语言:txt
复制
5e5e77236a8c0732e4edc4e5
代码语言:txt
复制
5e5e77236a8c0732e4edc4e6
代码语言:txt
复制
{'_id': ObjectId('5e5e77236a8c0732e4edc4e5'), '@uuid': '4321', 'id': '20000', 'name': '特斯拉', 'price': 800000}
代码语言:txt
复制
{'_id': ObjectId('5e5e77236a8c0732e4edc4e6'), '@uuid': '5678', 'id': '30000', 'name': 'Mac Pro', 'price': 40000}

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 请解释什么是NoSQL数据库,有哪些类型的NoSQL数据库,请说出这些数据库的典型产品,以及每个类型的NoSQL数据库的适用场景
  • 2. 将xml文档保存到MongoDB数据库中,并查询文档中的数据
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档