前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mongoDB的安装及基本使用1.mongoDB简介2.MySQL的安装3.Mongodb下载安装3.安装pymongo4.Mongodb基本使用5.

mongoDB的安装及基本使用1.mongoDB简介2.MySQL的安装3.Mongodb下载安装3.安装pymongo4.Mongodb基本使用5.

作者头像
Python攻城狮
发布2018-08-23 11:52:23
1.3K0
发布2018-08-23 11:52:23
举报
文章被收录于专栏:Python攻城狮Python攻城狮

1.mongoDB简介

1.NoSQL数据库

  • 数据库:进行高效的、有规则的进行数据持久化存储的软件
  • NoSQL数据库:Not only sql,指代非关系型数据库
代码语言:txt
复制
- 优点:高可扩展性、分布式计算、低成本、灵活架构、半结构化数据、简化关联关系
- 缺点:没有标准化、有限查询、不直观
代码语言:txt
复制
- 列存储:**Hbase、**Cassandra、Hypertable
- 文档存储:**MongoDB、**CouchDB
- k-v存储:TokyoCabinet、BerkeleyDB、**MemcacheDB、redis**
- 对象存储:Neo4J、Versant
- Xml数据库:BerkeleyDB、BaseX

注:黑色加粗的为常用的数据库

2.MongoDB概述

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

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

优点:

  • C++编写的运行稳定性能高的数据
  • 模式自由
  • 面向集合
  • 完整索引支持
  • 复制和高可用性

3.Mongodb术语解释

  • database--database:数据库
  • table – collection:数据库表 – 集合
  • row – document: 数据记录 – 文档
  • column – field:数据字段 – 域
  • index – index :索引 – 索引
  • table-join – None:表连接~
  • primary key – primary key :主键

4.MongoDB基本语法——数据类型

  • 集合就是关系型书库中的表
  • 文档对应关系型数据库中的行
  • 文档:就是一个JSON对象,由KEY=VALUE键值对构成
代码语言:javascript
复制
{“name”:”admin”, “gender”:”男”}
  • 集合:存储多个文档,结构不固定
代码语言:javascript
复制
{“name”:”admin”, “gender”:”男”}
{“name”:”manager”, “age”:23}
{“name”:”manager”, “phone”:”16868686868”}
  • 数据库:存储多个集合
  • 服务器:一个服务器中可以包含多个数据库

  • ObjectID:文档id
  • String:字符串
  • Boolean:布尔值
  • Integer:整数
  • Double:浮点数
  • Arrays:数组或者列表
  • Object:嵌入的文档
  • Null:空值
  • Timestamp:时间戳
  • Date:日期时间

2.MySQL的安装

回顾一下MySQL在ubuntu的安装

  • 在终端输入命令
代码语言:javascript
复制
sudo apt-get install mysql-server

sudo apt-get install mysql-client

sudo apt-get install libmysqlclient-dev
#安装过程中会提示设置密码什么的,注意设置了不要忘了
  • 安装完毕后输入以下命令检测是否安装成功
代码语言:javascript
复制
sudo netstat -tap | grep mysql

通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。

  • 登陆mysql数据库可以通过如下命令:
代码语言:javascript
复制
mysql -u root -p

-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql。

然后通过 show databases; 就可以查看当前的数据库。

3.Mongodb下载安装

  • 官方网站 注意:偶数为稳定版,如1.6,奇数为开发版,如1.7

1.Windows下Mongodb安装

直接下载msi文件或者点击All Verison Binaries下载都行

我这里用的是zip安装,安装完毕后,

当前所在磁盘目录下创建data文件夹

data文件夹中创建db文件夹和log文件夹

  • 在运行窗口输入命令启动数据库

mongod --dbpath d:/data/db

启动mongoDB数据库

  • 打开一个新的窗口输入命令**mongo**,用于数据库操作

打开一个新的窗口,用于数据库操作

2.Linux下Mongodb安装

MongoDB安装很简单,无需下载源文件,可以直接用apt-get命令进行安装。

1 . 打开终端,输入以下命令:

代码语言:javascript
复制
sudo apt-get install mongodb

2 . 安装完成后,在终端输入以下命令查看MongoDB版本:

代码语言:javascript
复制
mongo -version

显示版本信息,即安装成功

3 . 启动mongo数据库

  • 在终端输入命令
代码语言:javascript
复制
sudo mongo

启动mongo数据库

3.安装pymongo

PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式。

用Python操作MongoDB需要通过PyMongo,输入命令安装

代码语言:javascript
复制
pip install pymongo          默认安装
pip install pymongo==2.8      安装指定版本
pip install –upgrade pymongo   升级PyMongo

安装成功

命令运行成功无报错

4.Mongodb基本使用

1.基本操作

  • mongoDB将数据存储为一个文档
  • 数据由 key=value 的键值对的形式组成
  • 数据的操作:增删改查
  • nosql三元素:数据库 – 集合 – 文档 --域

2.基本语法

  • 数据库操作
代码语言:txt
复制
- **db:**查看当前指向的数据库
- **show dbs:**查看当前所有的数据库
- **use <数据库名称>:**指向一个数据库 Use数据库不会创建数据库,如果操作数据会自动创建数据库
    - 
代码语言:txt
复制
- **show collections:**查看当前数据库所有集合
- **db.createCollection(<c\_name> [, options]):**创建一个集合
- **db.<集合名称>.drop():**删除指定的集合
代码语言:javascript
复制
show collections 查看当前库中所有的集合,后面的collections不要加括号

db.createCollection(name, [optinos]) 
创建一个名称为name的集合,后面的options表示创建的附带选项
db.createCollection(“emp”):创建一个名称为emp的名称的集合
db.createCollection(“dept”, {“capped”: true, size: 5}):capped默认false
表示不设置上限,true表示设置上限需要设置size参数~表示达到上限时会将之前的数据覆盖
  • 增加数据
    • 语法:db.<集合名称>.insert(文档)
    • 集合可以是原来存在的,可以是不存在的
    • 文档:就是JSON格式表示的数据
    • 简单查询:db.<集合名称>.find()查询指定集合的数据
代码语言:javascript
复制
db.student.insert({name:”jerry”, gender:”男”})

db.student.insert({_id:”1”, name:”tom”, gender:”女”, age:18})
  • 更新数据
    • 语法:db.<集合名称>.update(<query>, <update>,[multi:<boolean>])
    • 指定属性更新:$opration
    • multi:默认false更新符合条件第一条,设置true全集合更新
代码语言:javascript
复制
#更新符合条件的文档
db.student.update({name:”tom”}, {name:”jerry”})

#更新符合条件的文档中符合条件的域
db.student.update({name:”tom”}, {$set:{name:”jerry”}})

#更新符合条件的多行文档及对应的域
db.student.update({}, {$set:{name:”donghua”}}, {multi:true})
  • 保存数据
代码语言:txt
复制
- **语法:**`db.<集合名称>.save(文档)`
- **特征:**[ \_id ]如果数据不存在就添加,如果数据存在修改
代码语言:txt
复制
- **语法:**`db.<集合名称>.remove(<query>, {justone:<boolean>})`
- **参数query:**删除文档的条件
- **参数justOne:**设置为true或者1,删除一条;默认false删除多条

查询数据

  • 基本查询
    • find({文档条件}):全集合查询
    • findOne({文档条件}):查询第一个
    • pretty():将查询结果格式化展示
  • 比较运算符
代码语言:javascript
复制
 默认判断,无运算符
 $lt:little~小于 <
 $lte:little or equals~小于等于 <=

 $gt:granter~大于 >
 $gte:granter or equals~大于等于 >=


#查询名称为jerry的学生
db.student.find({name:”jerry”})

#查询年龄已经适婚年龄的学员
db.student.find({age:{$gte:20}})
  • 逻辑运算符
    • 逻辑与:并且运算,默认操作,无运算符
    • 逻辑或:或者运算,$or
代码语言:javascript
复制
#查询年龄已经适婚年龄并且性别为女的学员
db.student.find({age:{$gte:20}, gender:”女”})

#查询年龄大于18或者性别为男的学员
db.student.find({$or:[{age:{$gt:18}, {gender:”女”}]})
  • 范围运算符
    • **$in:判断指定条件是否包含在某个范围内
    • **$nin:判断指定条件是否不包含在某个范围内
代码语言:javascript
复制
#查询年龄在18或者20的学员
db.student.find({age: {$in:[18,20]}})

#查询年龄不是18 的学员
db.student.find({age: {$nin : [20]}})
  • 限制查询条数
代码语言:javascript
复制
 <find>.limit(count)
  • 排序
代码语言:javascript
复制
<find>.sort({字段:1/-1, ...})
db.student.find().sort({name:1})
    1.表示升序排列 -1表示降序排列,可以指定多个字段
  • 统计
代码语言:javascript
复制
<find>.count()

 db.<集合名称>.count({条件})

两种操作方式
1.查询结果,通过count()统计数据
2. 通过count()直接添加条件统计数据
  • 去重
代码语言:javascript
复制
db.<集合名称>.distinct(“去重域名称”, {条件})

查询数据列表中,所有的年龄分布情况
db.student.distinct(“age”, {})
  • 分页
代码语言:javascript
复制
#隔n个数据查询m个数据
db.hero.find().pretty().limit(m).skip(n)

5.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.08.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.mongoDB简介
    • 1.NoSQL数据库
      • 2.MongoDB概述
        • 3.Mongodb术语解释
          • 4.MongoDB基本语法——数据类型
          • 2.MySQL的安装
          • 3.Mongodb下载安装
            • 1.Windows下Mongodb安装
              • 2.Linux下Mongodb安装
              • 3.安装pymongo
              • 4.Mongodb基本使用
                • 1.基本操作
                  • 2.基本语法
                    • 查询数据
                    • 5.
                    相关产品与服务
                    云数据库 SQL Server
                    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档