1、使用yum在线安装MongoDB

1)、配置MongoDB的yum 源

[root@localhost ~]# vim /etc/yum.repos.d/mongo.repo [mongodb]
name=mongodb
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7-5.0/
gpgcheck=0

2)、下载

[root@localhost ~]# yum install mongodb-org -y

3)、启动

[root@localhost ~]# systemctl enable mongod --now

2、源码安装MongoDB并配置服务脚本

1)、下载源码包(可能比较慢可使用迅雷下载后再导入)

[root@localhost ~]# wget https://fastdl.mongodb.org/linux/mongodb- linux-x86_64-rhel70-5.0.5.tgz

2)、解压

[root@localhost ~]# tar xf mongodb-linux-x86_64-rhel70-5.0.5.tgz -C /usr/local/

3)、按配置文件设置创建日志和数据文件存放目录

[root@localhost ~]# mkdir -p /usr/local/mongodb/{data,log}

4)、为启动设置软链接

[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -sv mongodb-linux-x86_64-rhel70-5.0.5/ mongodb

5)、创建配置文件

[root@localhost local]# cd mongodb
[root@localhost mongodb]# vim /usr/local/mongodb/mongod.confsystemLog:destination: filelogAppend: truepath: /usr/local/mongodb/log/mongod.logstorage:dbPath: /usr/local/mongodb/datajournal:enabled: trueprocessManagement:fork: true  pidFilePath: /usr/local/mongodb/log/mongod.pid  timeZoneInfo: /usr/share/zoneinfonet:port: 27017bindIp: 127.0.0.1

6)、 配置mongodb.service文件

[root@localhost mongodb]# vim  /usr/lib/systemd/system/mongodb.service[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network-online.target
Wants=network-online.target[Service]
User=mongod
Group=mongod
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongod.conf
ExecStop=/usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/mongod.conf
PrivateTmp=true [Install]
WantedBy=multi-user.target

7)、配置环境变量

[root@localhost mongodb]# vim /etc/profile.d/mongo.sh export PATH=$PATH:/usr/local/mongodb/bin

8)、启动

[root@localhost mongodb]# systemctl daemon-reload
[root@localhost mongodb]# systemctl start mongodb

3、基本操作作业
1)创建一个数据库 名字grade

[root@localhost mongodb]# mongo
> use grade;

2)数据库中创建一个集合名字 class

> db.createCollection("class")

3)集合中插入若干数据 文档格式如下

{name:'zhang',age;10,sex:'m',hobby:['a','b','c']}
hobby: draw sing dance basketball football pingpong computer
自行插入数据,后面查询使用

> db.class.insertMany([
... {name:'zhang',age:10,sex:'m',hobby:'draw'},
... {name:'wang',age:15,sex:'n',hobby:'commputer'},
... {name:'li',age:10,sex:'n',hobby:'pingpong'},
... {name:'sun',age:22,sex:'n',hobby:'sing'},
... {name:'zhou',age:30,sex:'n',hobby:'dance'}
... ])

4)查询操作
查看班级所有人信息

> db.class.find()
{ "_id" : ObjectId("61f2b8e8fa8b025370ecaaf4"), "name" : "zhang", "age" : 10, "sex" : "m", "hobby" : "draw" }
{ "_id" : ObjectId("61f2b8e8fa8b025370ecaaf5"), "name" : "wang", "age" : 15, "sex" : "n", "hobby" : "commputer" }
{ "_id" : ObjectId("61f2b8e8fa8b025370ecaaf6"), "name" : "li", "age" : 10, "sex" : "n", "hobby" : "pingpong" }
{ "_id" : ObjectId("61f2b8e8fa8b025370ecaaf8"), "name" : "sun", "age" : 22, "sex" : "n", "hobby" : "sing" }
{ "_id" : ObjectId("61f2b8e8fa8b025370ecaaf9"), "name" : "zhou", "age" : 30, "sex" : "n", "hobby" : "dance" }

查看班级中年龄为8岁的学生信息

> db.class.find({age:8})

查看年龄大于10岁的学生信息

> db.class.find({age:{$gt:10}})
{ "_id" : ObjectId("61f2b8e8fa8b025370ecaaf5"), "name" : "wang", "age" : 15, "sex" : "n", "hobby" : "commputer" }
{ "_id" : ObjectId("61f2b8e8fa8b025370ecaaf8"), "name" : "sun", "age" : 22, "sex" : "n", "hobby" : "sing" }
{ "_id" : ObjectId("61f2b8e8fa8b025370ecaaf9"), "name" : "zhou", "age" : 30, "sex" : "n", "hobby" : "dance" }

查看年龄在 4---8岁之间的学生信息

> db.class.find({age:{$gte:4,$lte:8}})

找到年龄为6岁且为男生的学生

> db.class.find({age:6,sex:'m'})

找到年龄小于7岁或者大于10岁的学生

> db.class.find({$or: [{age:{$lt:7}},{age:{$gt:10}}]})

找到年龄是8岁或者11岁的学生

> db.class.find({$or: [{age:8},{age:11}]})

找到兴趣爱好有两项的学生

> db.class.find({hobby:{size:2}})

找到兴趣爱好有draw的学生

> db.class.find({hobby:'draw'})

找到既喜欢画画又喜欢跳舞的学生

> db.class.find({hobby:{$all:['draw','dance']}})

统计爱好有三项的学生人数

> db.class.find({hobby:{$size:3}}).count()

找出本班年龄第二大的学生

> db.class.find({}).sort({age:-1}).skip(1).limit(1)

查看学生的兴趣范围

> db.class.distinct('hobby')

将学生按年龄排序找到年龄最大的三个

> db.class.find().sort({age:-1}).limit(3)

删除所有 年级大于12或者小于4岁的学生

db.class.remove({$or:[{age:{$gt:12}},{age:{$lt:4}}]})

5)增加、更新、删除、统计

db.class.update({name:"小红"},{$set:{age:8}},{$set:{hobby:['draw','dance']}})

将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画

db.class.update({name:"小红"},{$set:{age:8}},{$set:{hobby:['draw','dance']}})

追加小明兴趣爱好 唱歌

db.class.update({name:"小明"},{$push:{hobby:['sing']}})

小王兴趣爱好增加 吹牛 打篮球

db.class.update({name:"小王"},{$push:{hobby:['吹牛','basketball'c]}})

小李增加爱好,跑步和唱歌,但是不要和以前的重复

db.class.update({name:"小李"},{$addToSet:{hobby:{$each:['running','sing']}}})

该班所有同学年龄加1

db.class.update({},{inc:{age:1}})

删除小明的sex属性

db.class.update({name:"小明"},{$unset:{sex:0}})

删除小李兴趣中的第一项

db.class.update({name:"小李"},{$pop:{hobby:-1}})

将小红兴趣中的画画爱好删除

db.class.update({name:"小红"},{$pull:{hobby:'draw'}})

增加分数域 score:{'chinese':88,'english':78,'math':98}

db.class.insert({score:{'chinese':88,'english':78,'math':98}})

1. 按照性别分组统计每组人数

aggregate({$group:{_id:'$sex',num:{$sum:1}}})

2. 按照姓名分组,过滤出有重名的同学

aggregate([{$group:{_id:'$name',num:{$sum:1}}},{$match:{num:{$gt:1}}}])

3. 统计每名男生的语文成绩

aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])

4. 将女生按照英语分数降序排列

aggregate([{$match:{sex:'w'}},{$sort:{'score.english':-1}}])

NoSQL之MongoDB安装相关推荐

  1. linux yun 安装 redis,Linux系统安装NoSQL(MongoDB和Redis)步骤及问题解决办法(总结篇)...

    如下是我工作中的记录,介绍的是linux系统下NoSQL:MongoDB和Redis的安装过程和遇到的问题以及解决办法: 需要的朋友可以按照如下步骤进行安装,可以快速安装MongoDB和Redis,希 ...

  2. NoSql、MongoDb 数据库介绍及MongoDb安装、使用

    1.数据库和文件的主要区别 数据库有数据库表.行和列的概念,让我们存储操作数据更方便 数据库提供了非常方便的接口,可以让 nodejs.php java .net 很方便的实现增加修改删除功能 2.N ...

  3. 详细介绍, 不详请@me :nosql 数据库---MongoDB的安装和使用, 同时介绍一个终端控制神器

    目录 MongoDB在不同虚拟机系统中的安装步骤: @Centos系统下的Mongodb安装 @ 介绍一个终端控制神器. @介绍ubantu虚拟机中安装mongodb @ Windows本地mongo ...

  4. mongodb安装_MongoDB索引策略和索引类型

    mongodb安装 1. MongoDB索引策略和索引类型–简介 MongoDB是一个开放源代码,面向文档的跨平台数据库,它使用C ++开发,并且是最流行和使用最广泛的NoSQL类型数据库之一. 它可 ...

  5. mongodb安装_MongoDB和Web应用程序

    mongodb安装 当今时代是数据大规模增长的时代. 数据存储不是问题,是的,但是结构化和存储的方式可能会增加或减少所需数据块的查找时间. 不断增长的非结构化数据的用例 脸书: 7.5亿用户处于活跃状 ...

  6. NoSQL数据库-MongoDB和Redis

    NoSQL数据库-MongoDB和Redis   发布于2012-12-20,来源:比特网   1NoSQL简述 CAP(Consistency,Availabiity,Partitiontolera ...

  7. Spring EclipseLink NoSQL - 使用MongoDB和Oracle NoSQL DB构建

    Spring EclipseLink NoSQL - 使用MongoDB和Oracle NoSQL DB构建 我们已经探索了如何实现EclipseLink JPA和众所周知的关系数据库(如MySQL) ...

  8. MongoDB安装和入门

    转载来源 :MongoDB快速入门 : https://mp.weixin.qq.com/s/dgDyJ0PwtHswGykX9UED6w 1 进入MongoDB的世界 随着大数据时代的到来,数据急速 ...

  9. Windows MongoDB安装配置

    2019独角兽企业重金招聘Python工程师标准>>> 请使用新工具: NoSQL Manager for MongoDB,否则:MongoVUE连接报错(Invalid crede ...

  10. MongoDB——MongoDB安装和增删改查操作

    MongoDB基础 MongoDB相关概念 MongoDB 体系结构 数据模型 MongoDB的特点 MongoDB安装 启动MongoDB 启动MongoDB多实例 基本常用命令 选择和创建数据库 ...

最新文章

  1. 第一个Mybatis程序示例 Mybatis简介(一)
  2. ASP.NET ASHX中获得Session
  3. LeetCode题组:第914题-卡牌分组
  4. C++11中range-based for loops中与的区别
  5. eclipse没有日志_技术进展 | 加强公共DHT抵抗eclipse攻击!
  6. WebRTC 中收集音视频编解码能力
  7. vhosetuser 和 vhostuservlient 差异
  8. linux 下eclipse调试程序,文章2 Linux安装Eclipse阅读及调试程序
  9. c位边上还有什么位_c位是什么意思?C位说法的由来是什么?c位旁边二个位置叫什么?...
  10. C++ gdb core调试 崩溃日志 都是问号??
  11. UltraEdit中Matlab语法高亮显示的操作方法
  12. 魔兽世界服务器 运行状态,服务器状态查询,魔兽怀旧服务器状态查询
  13. 【VUE】vue程序设计----模仿网易严选
  14. Android 动画系列之 -- 补间动画
  15. win11邮箱客户端配置邮箱
  16. 计算机毕业设计Java共享充电宝管理系统(源码+系统+mysql数据库+Lw文档)
  17. python代码实现自动点击屏幕
  18. web前端开发面试都喜欢问什么
  19. html5网页制作代码-我的班级网页 HTML期末大作业 学校班级网页制作模板
  20. python skimage 填补图像孔洞

热门文章

  1. 金融评分卡项目—1.数据分析基础知识
  2. 容器技术的发展与基本原理
  3. 博文视点程序员读书节,大咖带你共读十日精彩
  4. Keras 文字生成系统
  5. iPhone SDK开发基础之使用UINavigationController组织和管理UIView
  6. 2. MarkText可代替Typora的markdown 编辑器
  7. 'scipy._lib.messagestream' 以及 'scipy.interpolate.interpnd.array' 解决办法
  8. Ubuntu 16.04 安装caffe(CPU)以及编译问题处理
  9. c语言 随机漫步,随机漫步理论
  10. matlab 切割图像像素,matlab – 使用图形切割与种子点的图像分割