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

举报
ruochen 发表于 2021/03/28 02:05:36 2021/03/28
【摘要】 1. 请解释什么是NoSQL数据库,有哪些类型的NoSQL数据库,请说出这些数据库的典型产品,以及每个类型的NoSQL数据库的适用场景 NoSQL: Not Only SQL键值(key-value)数据库 Redis、Riak、Memcached适用场景: 用来存储用户信息,比如会员、配置文件、参数、购物车等 文档(Document-Oriented)类型 Mong...

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

<!-- 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>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
'''
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)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
<!-- 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>
[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')])]
5e5e77236a8c0732e4edc4e4
5e5e77236a8c0732e4edc4e5
5e5e77236a8c0732e4edc4e6
{'_id': ObjectId('5e5e77236a8c0732e4edc4e5'), '@uuid': '4321', 'id': '20000', 'name': '特斯拉', 'price': 800000}
{'_id': ObjectId('5e5e77236a8c0732e4edc4e6'), '@uuid': '5678', 'id': '30000', 'name': 'Mac Pro', 'price': 40000}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

持续更新中。。。。

文章来源: ruochen.blog.csdn.net,作者:若尘,版权归原作者所有,如需转载,请联系作者。

原文链接:ruochen.blog.csdn.net/article/details/104644654

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。