我这边用的是MAC版本
在使用mongodb之前,我们需要给它配置一个macOS缺失的软件包管理器,叫做HomeBrew,链接是:HomeBrew
对应的,windows版本的也有一个软件包管理器,叫做Chocolatey,链接是:Chocolatey
然后我们这边主要说一下,homebrew的安装。
点击以上链接,进入到homebrew主页,可以看到以下的界面:
它本身支持很多语言,所以你可以点击标题下面的下拉选项框选择简体中文,就是我们熟悉的汉字啦,然后就想图片中说的,复制下面那个链接到终端上执行,就是在进行安装了,命令行如下:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装完HomeBrew,然后建一个文件夹中,里面再建一个名为database的文件夹,就可以在终端中,执行安装mongodb的命令行了,当然了首先你要确保操作是在当前文件夹下执行的。安装命令如下:
brew install mongod
安装完以后,需要启动mongoose服务器:
mongod --dbpath=拖过来的文件夹路径/我们建好的database目录
在进入环境之前,需要commond+N开启一个新的终端页面,然后之前那个也不要关闭,最小化放在页面上即可。
之后,输入命令进入mongodb环境:
mongo
首先,我们先来介绍一些基本的操作命令行:
查看数据库:show dbs
选择要操作的数据库:use DBNAME
查看集合:show collections
查看集合中的信息:db.COLLECTIONNAME/集合名称.find()
查看当前操作的数据库:db 或者 db.getName()
具体使用见下图:
(1)创建数据库
use 要创建的库名
添加数据才会创建成功:db.COLLECTION.insert(),其中id索引会自动递增
(2)选中已存在的数据库进行操作
选中数据库:use name
删除数据库:db.dropDatabase()
创建集合:db.createCollection(“集合名”)
删除集合:db.集合名.drop()
上面的创建和删除我就不再操作,因为比较懒,不想创建了,再给它删掉,哈哈哈,好了,接下来我们一起来看看数据库的增删改查的操作。
db.COLLECTIONNAME.insert()
这里值得一提的是,mongodb对集合的操作允许不一一对应的操作,不像本地服务器那样,必须一个字段对应一个值什么的,在这里它显得格外的灵活。
好了,加了两条数据之后,我们来看一下集合中到底加没加的进去,图片如下:
db.COLLECTIONNAME.remove({条件},{配置项/可选})
配置项:justOne:true
没有配置项,就删除所有符合条件的
有配置项,就删除一项
现在我们去删除一条:
我们删除了集合中名为“fafa”的那一条,这里配置项,加不加都只删除一项,毕竟名为“fafa”的也就只有一条,哈哈哈
db.COLLECTIONNAME.update({条件},{内容($set)},{配置项})
配置项:multi:true
没有配置项默认更新一条
有配置项更新所有符合条件的
注意:这一点与remove有点不一样哦
数据库操作最繁琐的就是查询数据,因为我们最最伟大的脑子总是能想到各种奇葩的条件去获取需要的数据,这也是很让人头大的,唉~但是没办法啊,我们还是的好好学习,谁让我们是程序猿呢,唉~好了,现在我们一起来啃这块不好啃的骨头吧。
db.COLLECTIONNAME.find()
这一条我们上面已经用过很多次了,在这里就不在赘述了。
db.COLLECTIONNAME.find().pretty()
这一条一般不用它,我也就不试了,集体就是按照一定的规范去查询数据。
(1)大于小于呀什么的
gt大于,lt小于,
大于等于gte,小于等于lte,
不等于ne,
等于:直接冒号
例如:我们查询年龄小于30岁的
(2)以什么什么开头的等等
这里也就是说明,查询的条件可以用正则表达式来匹配
我们来查一个名字姓张的
用“,”逗号表示
其实就是有多个查询条件的,比如,我们查一个姓张,且身高为174cm的人
就这样,我偷偷的又添加了一条174cm的张娜拉,然后取出来是这样的
db.COLLECTIONNAME.find().skip(num).limit(num) 跳过前num条,查num条的意思
db.COLLECTIONNAME.find().sort({age:1})
这个的意思就是以年龄为条件,正序查找
其中:1代表正序,-1代表倒序
db.COLLECTIONNAME.findOne()默认查询集合中的第一条
db.COLLECTIONNAME.find().count()