您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python浅谈-Python操作数据库之MongoDB(2)

bubuko 2022/1/25 20:03:03 python 字数 6027 阅读 1086 来源 http://www.bubuko.com/infolist-5-1.html

Python浅谈-Python操作数据库之MongoDB(2) 一、NoSQL? 1.NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非 ...

Python浅谈-Python操作数据库之MongoDB(2)

一、NoSQL?

  1.NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数

据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

  常见的非关系型数据库:Hbase、Redis、MongoDB、Neo4j、NewSQL;

  区别于上一篇文章的SQL(代表数据库MySQL);

   “non SQL” or “non relational“: 不是SQL,非关系型——不使用表关系存储和获取数据;

   Not only SQL—— 随着web2.0中大数据和实时的应用发展而来、可能支持类似SQL的查询语言;

 

  2.RDBMS和NoSQL的对比:
技术分享图片

 

 

 

  3.NoSQL的分类:

  <1>.Column: (在KV基础上的列存储,用于分布式数据):

    Accumulo, Cassandra, Druid, HBase, Vertica.

  <2>.Document: (文档形式存储,常见为json):

    Apache CouchDB, ArangoDB, BaseX, Clusterpoint, Couchbase, Cosmos DB, IBM Domino, MarkLogic,MongoDB, OrientDB, Qizx, RethinkDB

  <3>.Key-value: (KV对的模型存储数据):

    Aerospike, Apache Ignite, ArangoDB, Berkeley DB, Couchbase, Dynamo, FairCom c-treeACE,FoundationDB, InfinityDB, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak,SciDB, SDBM/Flat File

  dbm,ZooKeeper

  <4>.Graph: (图的结构存储,用于社交网络,交通网络等):

    AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso

  

二、MongoDB简介:

  1.简介:

  MongoDB是一个基于分布式文件存储 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案;

  MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它
 
 支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
 
  2.特点:
 
  ? Key-Value键值对表示数据,直观好读;
 
  ? json(bson)形式,对接各种语言无需转换;
 
  ? 数据结构多样,Value可以是整型、字符串,数组,嵌套的子文档;
 
  ? 格式灵活,修改方便;

  ? 索引,全文检索,查询方便;

  ? TTL(time to live),过期时间;

  ? 地理位置索引;

  ? 复制集,高可用+读写负载均衡;

  ? sharding支持水平扩展;

 

三、MongoDB的安装:

  进入官网下载社区版本 https://www.mongodb.com/download-center/community安装时尽量选择安装C盘(默认路径安装即可),否则可能报错

 

四、使用Python操作MongoDB数据库——pymongo:

  1.pip install pymongo # 安装pymongo库;

  2.一些简单的操作:

MongoDB shell version v4.2.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ae9072fd-31c4-4078-8e10-6868f14b18a5") }
MongoDB server version: 4.2.3
Server has startup warnings:
2020-03-24T16:19:10.470+0800 I  CONTROL  [initandlisten]
2020-03-24T16:19:10.470+0800 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-03-24T16:19:10.470+0800 I  CONTROL  [initandlisten] **
Read and write access to data and configuration is unrestricted.
2020-03-24T16:19:10.470+0800 I  CONTROL  [initandlisten]
---
Enable MongoDB‘s free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

> show dbs # 查看当前数据库 ,默认的为admin ,config ,local三个数据库
admin   0.000GB 
catt1e  0.000GB # 自建数据库
config  0.000GB
local   0.000GB
> use test # 创建新的数据库
switched to db test
> show dbs # 查看数据库发现并无数据
admin   0.000GB
catt1e  0.000GB
config  0.000GB
local   0.000GB
> db.test.insert({‘name‘:‘catt1e‘,‘age‘:‘20‘}) # 插入数据
WriteResult({ "nInserted" : 1 })
> show dbs # 发现数据库出现
admin   0.000GB
catt1e  0.000GB
config  0.000GB
local   0.000GB
test    0.000GB
> db.dropDatabase() # 删除数据库
{ "dropped" : "test", "ok" : 1 }
> show dbs # 查看数据库列表,确认删除
admin   0.000GB
catt1e  0.000GB
config  0.000GB
local   0.000GB

  

  3.更多学习资源:

   https://docs.mongodb.com/manual/(官方文档)

   https://mongoing.com/docs(中文手册,目前不知何原因暂停查看)

 

  

  

 

 

Python浅谈-Python操作数据库之MongoDB(2)

原文:https://www.cnblogs.com/catt1e/p/12562161.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶