Centos7 安装MongoDB与基础运用

1、关闭防火墙,selinux
systemctl stop firewalldsetenforce 0

2、实现虚拟机能够上网,所以说要两块网卡,一块内网和一块外网(本机要能上网)

CentOS7学习实验总结_mongodb

3、配置MongoDB的yum源

CentOS7学习实验总结_CentOS7学习实验总结_02

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

4、安装MongoDB:

yum install -y mongodb-org

CentOS7学习实验总结_数据_03

5、修改mangodb的配置文件

vi /etc/mongod.conf提示:0.0.0.0是所有地址

CentOS7学习实验总结_数据库_04

6、启动MongodDB

systemctl start mongodnetstat -anpt | grep mongod

CentOS7学习实验总结_运维_05

7mongo登录:

mongo

CentOS7学习实验总结_运维_06

8、MongoDB数据库基础操作
1、创建数据库
"use 数据库名称"
  use aa;

注:如果数据库不存在,则创建数据库,否则切换到指定数据库。

 

2、查看所有数据库

"show dbs"

 

CentOS7学习实验总结_mongodb_07


刚创建的数据库 aa 并不在数据库的列表中, 要想显示它。

提示:我们需要向 aa数据库插入一些数据。

db.col.insert({"name":"李四"})show dbs

CentOS7学习实验总结_运维_08


MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。

注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

 

3、删除数据库

db.dropDatabase()

删除当前数据库,默认为 test,可以使用 db 命令查看当前数据库名。

注:只会删除show dbs显示的数据库,而且要进入到数据库中,再执行删除命令

show dbs

CentOS7学习实验总结_运维_09

4、查看当前处于的数据库

db --当前处于数据库系统默认的数据库是test

CentOS7学习实验总结_数据_10


切换到aa数据库中在查看

CentOS7学习实验总结_数据库_11

5、mongodb集合操作

db.createCollection(name, { //集合的名字
          capped: <Boolean>,        //是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
           autoIndexId: <Boolean>,   //是否使用_id作为索引,默认为使用(true或false)
           size: <number>,           //限制集合使用空间的大小,默认为没有限制,size的优先级比max要高
            max <number>}             //集合中最大条数限制,默认为没有限制
)

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

options 可以是如下参数:
在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。
例子:
db.createCollection("c02")字段 类型 描述
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。
autoIndexId 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量

db.createCollection("Centos7")

查看已有集合

show collections

CentOS7学习实验总结_数据库_12

创建集合例子:
创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。

db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
   6142800, max : 10000 } )

在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。
db.mycol2.insert({"name" : "云计算"})

删除集合

db.集合名称.drop()

CentOS7学习实验总结_数据_13

插入文档
"db.集合名称.insert(文档)"
例子:
以下文档可以存储在 MongoDB 的 runoob 数据库 的 col 集合中:

db.col.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '云计算',
    url: 'www.lq.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

CentOS7学习实验总结_运维_14


 

更新文档

"db.集合名称.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
```"
 
> 参数说明:
> query : update的查询条件,类似sql update查询内where后面的。
> update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
> upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
> multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
> writeConcern :可选,抛出异常的级别。
>  
> 实例:通过 update() 方法来更新标题(title):

`db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})`
![](https://s2.51cto.com//images/blog/201901/18/6a935b0f9f480d7092aca4732c88938c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

只更新第一条记录:
`db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); `
 
全部更新:
`db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); `
 
只添加第一条:
`db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); `
 
全部添加进去:
`db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );` 
 
全部更新:
`db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );`
 
只更新第一条记录:
`db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );`

删除文档
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。
 
 
实例:
移除 title 为 'MongoDB 教程' 的文档:
db.col.remove({'title':'MongoDB 教程'})
 ![](https://s2.51cto.com//images/blog/201901/18/8ceac45e5939e3ae60723e3471c36d4d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
如果多条相同数据,只想删除第一条找到的记录可以设置 justOne 为 1:
db.集合名称.remove(查询条件,1)
 
想删除所有数据,可以使用以下方式:
`db.col.remove({})`

`db.col.find(查询条件).pretty()`
 
说明:
pretty() 方法以格式化的方式来显示所有文档。
MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开
 
实例:
且条件
通过 by 和 title 键来查询 菜鸟教程 中 MongoDB 教程 的数据:
`db.col.find({"by":"云计算", "title":"MongoDB 教程"}).pretty()`
 ![](https://s2.51cto.com/images/blog/202409/20033817_66ec7da94e6b959298.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
或者条件:
查询键 by 值为云计算 或键 title 值为 MongoDB 教程 的文档:
`db.col.find({$or:[{"by":"云计算"},{"title": "MongoDB 教程"}]}).pretty()`
 
且与或联合使用:
`db.col.find({"likes": {$gt:50}, $or: [{"by": "云计算"},{"title": "MongoDB 教程"}]}).pretty()`
 
 
实例:
获取 "col" 集合中 "likes" 大于 100 的数据:
`db.col.find({likes : {$gt : 100}})`
 
取"col"集合中 "likes" 大于等于 100 的数据:
`db.col.find({likes : {$gte : 100}})`
 
获取"col"集合中 "likes" 小于 150 的数据:
`db.col.find({likes : {$lt : 150}})`
 
获取"col"集合中 "likes" 小于等于 150 的数据:
`db.col.find({likes : {$lte : 150}})`
 
获取"col"集合中 "likes" 大于100,小于 200 的数据:
`db.col.find({likes : {$lt :200, $gt : 100}})`
  
mongodb排序
db.集合名称.find().sort({KEY:1})
使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
 
mongodb索引
db.集合名称.createIndex(keys, options)
说明:
语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。
 
实例:
`db.col.createIndex({"title":1})`
 
多字段索引:
`db.col.createIndex({"title":1,"description":-1})`


转载于:https://blog.51cto.com/13701082/2344078