46 - 将xml文档保存在MongoDB数据库中
【摘要】 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)