一、MongoDB简介
1、MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
2、MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
3、MongoDB是一个面向文档(document-oriented)的数据库,而不是关系型数据库。
4、丰富的功能
MongoDB作为一款通用型数据库,除了能够创建、读取、更新和删除数据之外,还提供了一系列不断扩展的独特功能。
#1、索引
支持通用二级索引,允许多种快速查询,且提供唯一索引、复合索引、地理空间索引、全文索引。
#2、聚合
支持聚合管道,用户能通过简单的片段创建复杂的集合,并通过数据库自动优化。
#3、特殊的集合类型
支持存在时间有限的集合,适用于那些将在某个时刻过期的数据,如会话session。类似地,MongoDB也支持固定大小的集合,用于保存近期数据,如日志等...
#4、文件存储
支持一种非常易用的协议,用于存储大文件和文件元数据。MongoDB并不具备一些在关系型数据库中很普遍的功能,如链接join和复杂的多行事务。省略这些的功能是处于架构上的考虑,或者说为了得到更好的扩展性,因为在分布式系统中这两个功能难以高效地实现。
二、MongoDB的下载与安装
1 1、下载安装 2 https://www.mongodb.com/download-center/community 3 2、安装路径为D:MongoDB,将D:MongoDBin目录加入环境变量 4 3、新建目录与文件 5 D:MongoDBdatadb 6 D:MongoDBlogmongod.log 7 8 或在C盘创建一个data/db文件夹 9 - 数据的存放路径 10 4、mongod启动服务 11 进入终端,输入mongod启动mongoDB服务。 12 13 5、mongo进入mongoDB客户端 14 打开一个新的终端,输入mongo进入客户端 15 16 6、、启动关闭 17 net start MongoDB 18 net stop MongoDB
三、MongoDB数据库的基本操作
1 一、数据库操作: 2 1、切换库: 3 SQL: 4 use admin; 有则切换,无则报错。 5 6 MongoDB: 7 use tank; 有则切换,无则创建,并切换tank库中。 8 9 2、查数据库: 10 SQL: 11 show databases; 12 13 MongoDB: 14 show dbs; 15 显示的数据库若无数据,则不显示。 16 17 3、删除库: 18 SQL: 19 drop database 20 21 MongoDB: 22 db.dropDatabase() 23 24 25 二、集合操作: MySQL中叫做表。 26 1、创建集合: 27 SQL: 28 create table f1, f2... 29 30 MongoDB: 31 # 在当前库中通过.来创建集合 32 db.student 33 34 2、插入数据: 35 # 插入多条数据 36 db.student.insert([{"name1": "tank1"}, {"name2": "tank2"}]) 37 38 # 插入一条 39 db.student.insert({"name": "tank"}) 40 41 42 3、查数据: 43 # 查找student集合中所有数据 44 db.student.find({}) 45 46 # 查一条 查找name为tank的记录 47 db.student.find({"name":"tank"
四、python链接MongoDB
1、下载第三方模块pymongo
pip3 install pymongo
2、链接mongoDB客户端
client = MongoClient('localhost', 27017)
1 from pymongo import MongoClient 2 3 #1、连接mongoDB客户端 4 #参数1:mongoDB的ip地址 5 #参数2:mongoDB的端口号 默认:27017 6 client=MongoClient('localhost',27017) 7 print(client) 8 9 #2、进入lw_db 10 print(client['lw_db']) 11 12 #3、创建集合 13 client['lw_db']['people'] 14 print(client['lw_db']['people']) 15 16 #4、给lw_db库插入数据 17 插入一条数据 18 data1={ 19 'name':'liwei', 20 'age':18, 21 'sex':'male' 22 } 23 client['lw_db']['people'].insert_one(data1) #data1为一条数据 24 25 #插入多条数据 26 data2={ 27 'name':'lw', 28 'age':18, 29 'sex':'male' 30 } 31 data3={ 32 'name':'lx', 33 'age':18, 34 'sex':'female' 35 } 36 client['lw_db']['people'].insert_many([data2,data3])