MongoDB数据库的安装与基本使用。

MongoDB介绍

Nosql介绍

  • NoSQL(NoSQL = Not Only SQL),意思就是不仅仅是SQL,他指得是非关系型的数据库,是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如遵循SQL标准、ACID属性、表结构等。NoSQL最早被提出是在20世纪80年代,当时更多是强调的是伊关系数据库区别对待,最近这些年被提及的更多的是强调协助解决大数据等相关问题。NoSQL在大数据时代有自己的意义。
  • NoSQL和传统数据库简单对比
    • 非结构型数据库。没有行和列的概念。用JSON来存储数据。几何就相当于”表“,文档就相当于”行“。

MongoDB介绍

  • MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富的,最像关系数据库的NoSQL数据库。它支持的书库结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是:高性能、易部署、易使用、存储数据非常方便

MongoDB的安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • mac下安装MongoDB:
  1. 打开Finder输入shift + command + G搜索/usr/local,默认情况下在Finder中是看不到 /usr 这个目录的(终端用得溜的请略过)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rySPuThN-1598607316265)(/Users/mac/Desktop/MarkDown /nodejs笔记/MongoDB/MongoDB笔记一/4.jpg)]

  1. 将下载好并解压的文件夹重命名为mongodb放入当前文件夹。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JwlpeG2M-1598607316266)(/Users/mac/Desktop/MarkDown /nodejs笔记/MongoDB/MongoDB笔记一/5.jpg)]

  1. .配置环境变量,打开终端,输入“open -e .bash_profile”,在打开的文件中加入:
export PATH=${PATH}:/usr/local/mongodb/bin

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RXcaLz3b-1598607316268)(/Users/mac/Desktop/Xnip2020-08-27_14-56-29.jpg)]

command + s保存后退出。

  1. 输入"source .bash_profile"使配置生效。输入"mongod -version",回车后如果看到下面的版本号则说明MongoDB已经成功安装到了Mac上。

在这里插入图片描述

  1. 在根目录下新建 data 文件夹,里面再建一个 db 文件夹,安装MongoDB时并不会自动生成,需要我们手动创建,可以在命令行输入创建,也可以直接在Finder中手动新建。
sudo mkdir -p /data/db

在这里插入图片描述
在这里插入图片描述

  1. 打开终端输入"sudo mongod"启动服务端。打开浏览器,输入localhost:27017 ,会出现这样一行文字。It looks like you are trying to access MongoDB over HTTP on the native driver port.

  2. 重新打开一个新的终端,输入"mongo",可执行对数据库进行操作,要停止MongoDB的时候一定要正确的退出,不然下次再次连接数据库会出现问题,使用下面的两行代码可以完成这一操作。

use admin;

db.shutdownServer();

在这里插入图片描述
在这里插入图片描述

  1. 可视化工具:RoboMongo是一个跨平台的MongoDB GUI客户端管理工具,支持Windows、MacOS、Linux。其特点是支持到MongoDB服务器的SSL连接,还支持使用SSH隧道连接。RoboMongo的查询界面同时支持树视图、表格视图、文本视图三种,也可以保存查询结果供以后使用。 Robomongo 可以选择适合自己的版本下载。

MongoDB数据库操作

连接数据库

  • 上面介绍mac安装mongodb数据库的时候也介绍了如何连接数据库,首先用一个终端输入"sudo mongod"建立连接,然后启动另一个终端输入"mongo"开始执行操作,比如输入"show dbs"看一下目前有哪些数据库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Bh6sRyp-1598607316280)(/Users/mac/Desktop/MarkDown /nodejs笔记/MongoDB/MongoDB笔记一/12.jpg)]

创建、查看、删除数据库

  • 假设我们要创建如下的一个数据库aniu

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZLfEpZFT-1598607316281)(/Users/mac/Desktop/MarkDown /nodejs笔记/MongoDB/MongoDB笔记一/13.jpg)]

  • 使用数据库、创建数据库:
use aniu

如果真的想把这个数据库创建成功,那么必须插入一个数据。

数据库中不能直接插入数据,只能往集合(collections)中插入数据。

  • 下面命令表示给aniu数据库的user表中插入数据。
db.user.insert({"name": "xiaoming"});

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KAyz1GBC-1598607316281)(/Users/mac/Desktop/MarkDown /nodejs笔记/MongoDB/MongoDB笔记一/14.jpg)]

注意:当我们use数据库但没有insert内容的时候,使用show dbs不会看到我们建立的数据库,只有加入内容后,数据库才真正建立成功。

  • 使用show collections可以看我们当前数据库有哪些表(集合)。
    • 使用db.user.find()可以看表中的数据。
    • 使用db.user.find({"age": 22})可以查找指定年龄为22的数据。
    • 使用db.user.find({"age":{$gt:22}})查找age>22的数据。
    • 使用db.user.find({"age":{$lt:22}})查找age<22的数据。
    • 使用db.user.find({age:{$gte:22}})查找age>=22的数据。
    • 使用db.user.find({age:{$lte:22}})查找age<=22的数据。
    • 使用db.user.find({"name":/mongo/})查找name中包含mongo的数据(模糊查询)。
    • 使用db.user.find({"name":/^mongo/})查找name中以mongo开头的数据(模糊查询)。
    • 使用db.user.fn({},{name:1})查询指定列的name数据。
    • 使用db.user.find().sort({age:1})按升序查询年龄。
    • 使用db.user.find().sort({age:-1})按降序查询年龄。
    • 使用db.user.find({"name":"zhangsan","age": 22})查找name=zhangsan,age=22的数据。
    • 使用db.user.find().limit(5)查询前5条数据。
    • 使用db.user.find().skip(10)查询10条以后的数据。
    • 使用db.user.find( ).skip(5).limit(10)可用于分页查找。
    • 使用db.user.find({$or:[{"age":22},{"age":25}]})可找age=22或者age=25的数据
    • 使用db.user.findOne()表示查询第一条数据。
    • 使用db.user.find().count()查询记录条数,统计数量。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DCwUN3nY-1598607316282)(/Users/mac/Desktop/MarkDown /nodejs笔记/MongoDB/MongoDB笔记一/15.jpg)]

  • 使用db.dropDatabase()可以删除数据库。
    • 使用db.user.drop()可以删除数据库中的表。
    • 使用db.user.remove({"age":12})可以删除数据。
    • 使用db.user.remove({})会删除该表所有数据。
    • 使用db.user.remove({"sex":"男"},{justOne:true})可以只删除一条数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ii2slVLs-1598607316284)(/Users/mac/Desktop/MarkDown /nodejs笔记/MongoDB/MongoDB笔记一/16.jpg)]

修改数据

  • 修改里面还有查询条件。你要改谁,告诉mongo。查找名字叫做小明的,把年龄改为16岁:
db.student.update({"name": "小明"},{$set:{"age":16}})

注意如果不出现$set则表示完整替换。

db.student.update({"sex": "男"},{$set:{"age":16}},{multi:true})

添加第三个参数可以一次更改多条数据,不然的话一次只能修改一条数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值