MongoDB_走一波

时间:2020-02-15 21:17:58   收藏:0   阅读:77

Mongodb

一、mongodb的介绍

mongodb的优势

二、mongodb安装

# 添加环境变量
    vim .bashrc
    export PATH=/usr/local/mongodb/bin:$PATH    
# 使环境变量生效
    source .bashrc
# 启动
    systemctl start mangodb
# 停止
    systemctl stop mangodb
# 重启
    systemctl restart mangodb
# 查看是否启动成功
    ps -aux |grep mangodb
# 默认端口
    27017

三、mongodb基本操作

关于database的基础命令

# 查看当前的数据库:
    db
# 查看所有的数据库:
    show dbs /show databases
# 切换数据库:
    use db_name
# 删除当前的数据库:
    db.dropDatabase()

关于集合的基础命令

# 不手动创建集合:
    向不存在的集合中第一次加入数据时,集合会被创建出来
# 手动创建集合:
    db.createCollection(name,options)
    db.createCollection("stu")
    db.createCollection("sub",{capped:true,size:10})
    参数capped:默认值为false表示不设置上限,值为true表示设置上限
    参数size:当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节。
# 查看集合:
    show collections
# 删除集合:
    db.集合名称.drop()

数据类型

Object ID:文档ID
string: 字符串,最常用,必须是有效的UTF-8
Boolean:存储一个布尔值,true或false
Integer:整数可以是32位或者64位,这取决于服务器
Double:存储浮点值
Arrays:数组或列表,多个值存储到一个键
Object:用于嵌入式的文档,即一个值为一个文档
Null:存储Null值
Timestamp:时间戳,表示从1970-1-1到现在的总秒数
Date:存储当前日期或时间的UNIX时间格式

注意点

插入

四、mongodb数据查询

mongodb插入数据

mongodb的更新操作

mongodb删除

mongodb的count方法

mongodb的投影

$group的注意点

编辑器写mongodb语句

db.stu.find(
  {$or:[{age:{$gte:20}},{hometown:{$in:["桃花岛","华?"]}}]}
  )

#按照gender进行分组,获取不同组数据的个数和平均年龄
db.stu.aggregate(
  {$group:{_id:"$gender",count:{$sum:1},avg_age:{$avg:"$age"}}},
  {$project:{gender:"$_id",count:1,avg_age:"$avg_age",_id:0}}
  )
# 按照hometown进行分组,获取不同组的平均年龄
db.stu.aggregate(
  {$group:{_id:"$hometown",mean_age:{$avg:"$age"}}}
  )
#使用$group统计整个文档
db.stu.aggregate(
  {$group:{_id:null,count:{$sum:1},mean_age:{$avg:"$age"}}}
  )
#选择年龄大于20的学生,观察男性和女性有多少人
db.stu.aggregate(
  {$match:{$or:[{age:{$gt:20}},{hometown:{$in:["蒙古","?理"]}}]}},
  {$group:{_id:"$gender",count:{$sum:1}}},
  {$project:{_id:0,gender:"$_id",count:1}}
  )

#page37页练习
db.tv3.aggregate(
  {$group:{_id:{country:"$country",province:"$province",userid:"$userid"}}},
  {$group:{_id:{country:"$_id.country",province:"$_id.province"},count:{$sum:1}}},
  {$project:{country:"$_id.country",province:"$_id.province",count:1,_id:0}}
  )

数据查询

比较运算符

db.stu.find({age:{gte:18}})

范围运算符

使用"$in","$nin"判断是否在某个范围内

查询年龄为18、28的学生

db.stu.find({age:{$in[18,28,38]}})

逻辑运算符

使用正则表达式

使用//或$regex编写正则表达式

查询姓黄的学生

db.products.find({sku:/^abc/})

limit和skip

自定义查询

使用$where 后面写一个函数,返回满足条件的数据
查询年龄大于30的学生
db.stu.find({
    $where:finction(){
        return this.age>30
    }
})

投影

在查询的返回结果中,只选择必要的字段
db.集合名称.find({},{字段名称:1,....})

排序

方法sort(),用于对集合进行排序

db.集合名称.find().sort({字段:1,....})

统计个数

方法count()用于统计结果集中文档条数

五、mongodb聚合

聚合 aggregate

聚合是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组,过滤等功能,然后经过一系列的处理,输出相应的结果。

? db.集合名册.aggregate({管道:{表达式}})

常用管道

在mangodb中,文档处理完毕后,通过管道进行下一次处理

常用管道如下:

表达式

处理输入文档并输出

语法:表达式:‘$列名‘

常用表达式:

六、备份、恢复、索引

备份

备份的语法:
    mongodump -h dbhost -d dbname -o dbdirectory
-h:服务器地址,也可以指定端口号
-d:需要备份的数据库名称
-o:备份的数据存放的位置,此目录中存放着备份出来的数据
    

恢复

恢复语法:
    mongorestore -h dnhost -d dbname --dir dbdirectory
-h:服务器地址
-d:需要恢复的数据库实例
--dir:备份数据所在位置

索引

以提升查询速度

mongodb mysql redis的区别和使用场景

爬虫数据去重,实现增量式爬虫

原文:https://www.cnblogs.com/jiaxiaozia/p/12313648.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!