MongoDB安装和常用命令一

1,458 阅读6分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情


1.写在前面

在日益扩展的数据中,查询的效率会随着数据量的变得,变得越来越慢。

很多时候,业主方又得要求查询效率得跟上,查询条件得丰富。

在mysql的sql优化上面,索引的优化,往往在几千万几亿得数据量下,变得起效甚微。

这里,我们有无可以优化得方式呢,一般得做法是用nosql这些非关系数据库,进行优化。

nosql,同时得在支持查询效率得情况下,还得支持丰富得查询,那这里:

mongodb这不就来了嘛!!!

MongoDB 是一个基于【分布式文件存储】的数据库,它属于NoSQL数据库。是非关系数据库当中功能最丰富,最像关系数据库的。

支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

既然mongodb能有这么好,这不得学一波嘛?

image.png

2.安装和常用命令

2.1安装

MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包。

下载地址:官网

企业微信截图_16612141535084.png

这里我们选择4.4.16

下载完安装包,上传到/opt, 并解压 tgz(以下演示的是 64 位 Linux上的安装) 。

tar -xf mongodb-linux-x86_64-amazon-4.4.16.tgz # 解压
mv mongodb-linux-x86_64-amazon-4.4.16 mongodb  # 重命名

创建data和logs文件夹

cd mongodb                                
mkdir -p /data
mkdir -p /logs

配置环境变量(可以不配置):

vi /etc/profile  # 编辑

export PATH=$JAVA_HOME/bin:/opt/mongodb/bin:$PATH  # 文件最后面添加这行

source /etc/profile # 让配置生效

2.2启动

创建mongodb.cfg配置文件

cd /opt/mongodb

vi mongodb.cfg

配置文件添加下面内容

#数据库文件位置
dbpath=/opt/mongodb/data
#日志文件位置
logpath=/opt/mongodb/logs/mongodb.log
# 以追加方式写入日志
logappend=true
# 是否以守护进程方式运行
fork=true
#绑定客户端访问的ip 0.0.0.0 不绑定ip
bind_ip=127.0.0.1
# 默认 27017
port= 27017

通过配置文件方式启动:

mongod -f /opt/mongodb/mongodb.cfg

-f 指定启动的配置文件

好了,mongodb这就启动成功了!!!

image.png

2.3连接客户端

接下来,我们就开始通过客户端连接上mongodb,进行实操一波吧!!!

mongo 127.0.0.1:27017

2.4常用客户端

  • 自带命令行客户端
  • nosqlbooster4mongo
  • NoSQL Manager for MongoDB
  • Navicat for mongodb
  • MongoVUE

2.5常用命令

实操,开始了!!!

image.png

2.5.1创建数据库

2.5.1.1语法

MongoDB 创建数据库的语法格式如下:

use DATABASE_NAME

使用上面的命令,如果数据库不存在,则创建数据库,否则切换到该数据库。

2.5.1.2实例

下面,我们来创建数据库 llsydn:

> use llsydn
switched to db llsydn

> db
llsydn

如果你想查看所有数据库,可以使用 show dbs 命令:

> show dbs

这里说明下:如果llsydn数据库没有数据,上面的命令,是查不出来llsydn的。

我们需要向 llsydn 数据库插入一些数据,才能显示出来。

插入一些数据到llsydn

> use llsydn
switched to db llsydn

>db.createCollection("lls")
{ "ok" : 1 }

> db.lls.insert({"name":"llsydn"})
WriteResult({ "nInserted" : 1 })

> show dbs
llsydn 0.078GB

2.5.2删除数据库

2.5.2.1语法

MongoDB 删除数据库的语法格式如下:

db.dropDatabase()

删除当前数据库,你可以使用 db 命令查看当前数据库名。所以在删除前,需要用use命令,切换到该数据库,再进行删除。

2.5.2.2实例

实操:我们删除数据库 llsydn。

接下来我们切换到数据库 llsydn:

> use llsydn
switched to db llsydn

执行删除命令:

> db.dropDatabase()
{ "dropped" : "llsydn", "ok" : 1 }

2.5.3创建集合

这里使用 createCollection() 方法来创建集合。

2.5.3.1语法

语法格式:

db.createCollection(name, options)

参数说明:

  • name: 要创建的集合名称
  • options: 可选参数, 指定有关内存大小及索引的选项

2.5.3.2实例

在 llsydn 数据库中创建 lls 集合:

> use llsydn
switched to db llsydn

> db.createCollection("lls")
{ "ok" : 1 }

可以看到lls 集合已经创建成功

如果要查看已有集合,可以使用 show collections 命令:

> show collections
lls

2.5.4删除集合

删除语法格式如下:

db.collection_name.drop()

上面的collection_name,需要根据实际的集合名称,进行替换

实操删除了 llsydn 数据库中的集合 lls:

> use llsydn
switched to db llsydn

> show tables
lls

> db.lls.drop()
true

2.5.5插入文档

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

db.collection_name.insert(document)

上面的collection_name,需要根据实际的集合名称,进行替换

实操,在 llsydn 数据库 的 lls 集合中插入数据:

>db.lls.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: 'llsydn',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})

或者:

>var document = {title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: 'llsydn',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
}
>db.lls.insert(document)

上面的命令,都可以使用,看你个人喜欢即可。

2.5.6删除文档

MongoDB remove()函数是用来移除集合中的数据。

在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。

remove() 方法的基本语法格式如下所示:

db.collection.remove(
<query>,
<justOne>
)

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1 ,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
  • writeConcern :(可选)抛出异常的级别。

使用 find() 函数查询数据:

> db.lls.find()
{ "_id" : ObjectId("56066169ade2f21f36b03137"), "title" : "MongoDB 教程", "description" :
"MongoDB 是一个 Nosql 数据库", "by" : "llsydn", "tags" : ["mongodb", "database", "NoSQL" ], "likes" : 100 }

接下来我们移除 title 为 'MongoDB 教程' 的文档:

>db.lls.remove({'title':'MongoDB 教程'})
WriteResult({ "nRemoved" : 1 }) # 删除了1条数据

>db.lls.find()
...... # 没有数据

如果你想删除所有数据,可以使用以下方式(类似常规 SQL 的 truncate 命令):

>db.lls.remove({})

建议:执行find()命令来判断执行的条件是否正确(删除前)

2.5.7查询文档

MongoDB 查询数据的语法格式如下:

db.collection.find(query, projection)
  • query :可选,使用查询操作符指定查询条件
  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

>db.lls.find().pretty()
  • pretty() 方法以格式化的方式来显示所有文档。

以下实例我们查询了集合 lls 中的数据:

> db.lls.find().pretty()

{
    "_id" : ObjectId("56063f17ade2f21f36b03133"),
    "title" : "MongoDB 教程",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "llsydn",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}

好了,以上就是MongoDB安装和常用命令一的分享了。

安装部署也不难,赶紧去试一下吧。

常用命令比较多,留着下次分享了,886

好了,个人实操可能也不够全面,班门弄斧了。

如果觉得有收获的,帮忙点赞、评论、收藏一下呗!!!

image.png