mongoDB的安装及基本使用

1.mongoDB简介

1.1 NoSQL数据库

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

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

1.2.MongoDB概述

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

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

优点:

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

1.3.Mongodb术语解释

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

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

  • 集合就是关系型书库中的表
  • 文档对应关系型数据库中的行
  • 文档:就是一个JSON对象,由KEY=VALUE键值对构成
{“name”:”admin”, “gender”:”男”}

集合:存储多个文档,结构不固定

{“name”:”admin”, “gender”:”男”}
{“name”:”manager”, “age”:23}
{“name”:”manager”, “phone”:”16868686868”}
  • 数据库:存储多个集合
  • 服务器:一个服务器中可以包含多个数据库
  • ObjectID:文档id
  • String:字符串
  • Boolean:布尔值
  • Integer:整数
  • Double:浮点数
  • Arrays:数组或者列表
  • Object:嵌入的文档
  • Null:空值
  • Timestamp:时间戳
  • Date:日期时间

2.Mongodb下载安装

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

2.1.Windows下Mongodb安装

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

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

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

  • 在cmd窗口输入命令启动数据库
mongod --dbpath D:\软件安装\MongoDB\data\db(此处是db的路径)
  • 打开一个新的窗口输入命令mongo,用于数据库操作

2.2.Linux下Mongodb安装

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

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

sudo apt-get install mongodb

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

mongo -version

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

3 . 启动mongo数据库

在终端输入命令

sudo mongo

3.安装pymongo

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

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

pip install pymongo          默认安装
pip install pymongo==2.8      安装指定版本
pip install –upgrade pymongo   升级PyMongo

安装成功

命令运行成功无报错

4.Mongodb基本使用

4.1.基本操作

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

4.2.基本语法

  • 数据库操作

    • db:查看当前指向的数据库
    • show dbs:查看当前所有的数据库
    • use <数据库名称>:指向一个数据库
      Use数据库不会创建数据库,如果操作数据会自动创建数据库
    • db.dropDatabase():删除当前指向的数据库
  • 集合操作
    • show collections:查看当前数据库所有集合
    • db.createCollection(<c_name> [, options]):创建一个集合
    • db.<集合名称>.drop():删除指定的集合
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()查询指定集合的数据
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全集合更新
#更新符合条件的文档
db.student.update({name:”tom”}, {name:”jerry”})

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

#更新符合条件的多行文档及对应的域
db.student.update({}, {$set:{name:”donghua”}}, {multi:true})
  • 保存数据

    • 语法:db.<集合名称>.save(文档)
    • 特征:[ _id ]如果数据不存在就添加,如果数据存在修改
  • 删除数据
    • 语法:db.<集合名称>.remove(<query>, {justone:<boolean>})
    • 参数query:删除文档的条件
    • 参数justOne:设置为true或者1,删除一条;默认false删除多条

查询数据

  • 基本查询

    • find([{文档条件}]):全集合查询
    • findOne([{文档条件}]):查询第一个
    • pretty():将查询结果格式化展示
  • 比较运算符
 默认判断,无运算符
 $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
#查询年龄已经适婚年龄并且性别为女的学员
db.student.find({age:{$gte:20}, gender:”女”})

#查询年龄大于18或者性别为男的学员
db.student.find({$or:[{age:{$gt:18}, {gender:”女”}]})
  • 范围运算符

    • $in:判断指定条件是否包含在某个范围内
    • $nin:判断指定条件是否不包含在某个范围内
#查询年龄在18或者20的学员
db.student.find({age: {$in:[18,20]}})

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

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

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

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

5.Mongodb与python交互

之前学习了爬虫,现在我们把爬取得到的数据存储于Mongodb中

#爬取英雄联盟英雄信息详情,并存储

#-*- coding:utf-8 -*-
import pymongo
import requests
from bs4 import BeautifulSoup

#建立于MongoClient 的连接
client = pymongo.MongoClient(‘localhost‘,27017)
#得到数据库
hero = client[‘hero‘]
#得到一个数据集合
sheet_tab = hero[‘sheet_tab‘]
url = ‘http://lol.duowan.com/hero/‘
req = requests.get(url)
soup = BeautifulSoup(req.text,‘html.parser‘)
links = soup.find(id="champion_list").find_all(‘a‘)
for link in links:
    link = link[‘href‘]
    requ = requests.get(link)
    sop = BeautifulSoup(requ.text,‘html.parser‘)
    data = {
    ‘title‘ : sop.find(‘h2‘,class_="hero-title").get_text(),
    ‘name‘ : sop.find(‘h1‘,class_="hero-name").get_text(),
    ‘tags‘ : sop.find(‘div‘,class_="hero-box ext-attr").find_all(‘span‘)[1].get_text(),
    ‘story‘ : sop.find(‘div‘,class_="hero-popup").find_all(‘p‘)[0].get_text(),
    }
    sheet_tab.insert_one(data)

开启mongo,运行代码

通过Robo 3T可视化工具我们可以看到抓取到了137条数据,并且已存储到mongodb中

时间: 2024-10-11 15:51:22

mongoDB的安装及基本使用的相关文章

Win7下MongoDB的安装和使用

Win7下MongoDB的安装和使用 1.下载: http://www.mongodb.org/downloads 2.安装: 安装目录为 D:\mongodb\MongoDB 2.6 Standard 配置环境变量Path为 D:\mongodb\MongoDB 2.6 Standard\bin D:\mongodb\ 下建立一个data文件夹用于存放数据库文件 3.启动服务器: cmd下输入 mongod.exe --dbpath d:\mongodb\data 如果启动正常会看到类似如下的

mongodb数据库安装 & 设置管理员密码(单独mongo,无副本集)

##初始化系统环境,参考文档:服务器系统环境初始化,Centos7系统 #mongodb下载安装 mkdir -p /server/src /server/logs groupadd mongod useradd -s /sbin/nologin -g mongod mongod   cat /etc/passwd |grep mongo cd /server/src    ##安装mongodb 3.0.7版本,若需要其他版本,官网获取下载https://fastdl.mongodb.org/

MongoDB如何安装及启动

MongoDB是一款C++编写的开源的跨平台面向文档数据库,是NoSQL数据库的一种.MongoDB摒弃了传统数据库中基于表的数据结构,采用类似JSON格式的文档结构来存储数据(MongoDB中称这种格式为BSON).MongoDB最初是由10gen(2013年更名为MongoDB Inc.)公司于2007年开发的,并于2009年开源.现在我们就从最基本的学起,学习MongoDB的安装和启动. 第一步:下载安装包:如果是win系统,注意是64位还是32位版本的,请选择正确的版本. 第二步:新建目

MongoDB的安装

在命令行中进入到mongoDB的安装目录 mongod.exe --dbpath 注: --dbpath 是mongoDBDATA的文件夹位置 例如: mongod.exe --dbpath D:\java_tools\MongoDB\MongoDBDATA 回车 mongoDBDATA目录中多了几个文件 出现27017的端口监听.说明已安装成功 2.配置环境变量 在path后面加上mongoDB\bin目录下     记得加分号 测试环境变量是否成功 在命令行中 出现下面的帮助文档说明成功 来

MongoDB Linux 安装配置 后台运行

介绍安装的文档很多,可以参考这篇: http://www.mkyong.com/mongodb/how-to-install-mongodb-on-mac-os-x/ 安装完后你可能会碰到的2个问题. 1.让mongod在后台运行 启动mongo的命令mongod有一个参数--fork可以使mongo在后台运行,但同时必须设置--logpath参数指定启动日志文件的路径,因为此时日志无法写到控制台了.例子: mongod --fork --logpath /var/log/mongod.log

Linux 下mongodb的安装

l第一:下载,解压mongodb文件.把解压的文件放在/opt/下面(存放目录安装自己习惯存放) # wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.4.tgz # tar -xvf mongodb-linux-x86_64-2.0.4.tgz # mv mongodb-linux-x86_64-2.0.4.tgz mongodb2.0.4  (为了方便,把它从命名的更加简洁些) 第二:创建mongodb存放的数据文件.

mongodb的安装与增删改查

mongodb是一款分布式的文件存储的数据库,注意这两个词,分布式和文件存储.mongodb支持复制和分片,可以合理的运用空间的大小,也可以达到容灾的目的.另外文件存储也是一个特点,抛弃了传统的表的概念,使用了集合的概念,下面是对应图 另外一个mongodb具有的优势便是其具有一个javascript的shell,你可以在这里使用纯js的语法. 目前mongodb的版本是3.X版本的,其api相对于2.x版本的变化了不少,包括很多常用的增删改查的命令都有所变化. 首先,下载mongodb,然后c

MongoDB下载安装与简单增删改查

Windows下MongoDB的安装和配置.启动和停止 下载地址:MongoDB的官方下载网址是:https://www.mongodb.org/downloads 安装步骤1. 点击下载的mongodb-win32-x86_64-2008plus-ssl-3.0.4-signed.msi,下一步,下一步over. 安装步骤2. 我这里是默认安装路径,复制路径: C:\Program Files\MongoDB\Server\3.0\bin 打开cmd窗口,输入以下命令 1.> cd C:\Pr

mongodb mac 安装

mongodb的安装方法一般有两种: 一.下载安装 二.Homebrew安装 我使用的是第二种 1.更新Homebrew brew update 2.安装mongodb(超级权限安装,不然会出问题) sudo brew install mongodb 如果一切顺利就已经安装好了 # 启动命令 mongod # 启动客户端命令 mongo 可以将mongo添加到环境变量,在 # 在~/.bash_profile中添加,添加自己的目录 export PATH=/usr/local/Cellar/mo

Ubuntu下MongoDB的安装和使用

本博文介绍了MongoDB,并详细指引读者在Ubuntu下MongoDB的安装和使用.本教程在Ubuntu14.04下测试通过.(2017.09.07) 安装MongoDB MongoDB安装很简单,无需下载源文件,可以直接用apt-get命令进行安装. 打开终端,输入以下命令: sudo apt-get install mongodb 安装完成后,在终端输入以下命令查看MongoDB版本: mongo -version 输出版本信息,表明安装成功,如下: [email protected]:/