设为首页 收藏本站
查看: 1179|回复: 0

[经验分享] Centos7 安装MongoDB与基础运用

[复制链接]

尚未签到

发表于 2019-2-15 11:35:45 | 显示全部楼层 |阅读模式
Centos7 安装MongoDB与基础运用
  1、关闭防火墙,selinux
systemctl stop firewalld
setenforce 0
  2、实现虚拟机能够上网,所以说要两块网卡,一块内网和一块外网(本机要能上网)

  3、配置MongoDB的yum源


[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

  5、修改mangodb的配置文件
vi /etc/mongod.conf
提示:0.0.0.0是所有地址

  6、启动MongodDB
systemctl start mongod
netstat -anpt | grep mongod

  7mongo登录:
mongo

  8、MongoDB数据库基础操作
1、创建数据库
"use   数据库名称"
  use    aa;
  注:如果数据库不存在,则创建数据库,否则切换到指定数据库。
 
2、查看所有数据库
"show  dbs"
 
刚创建的数据库 aa 并不在数据库的列表中, 要想显示它。
提示:我们需要向 aa数据库插入一些数据。
db.col.insert({"name":"李四"})
show dbs

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。
注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。
 
3、删除数据库
db.dropDatabase()
删除当前数据库,默认为 test,可以使用 db 命令查看当前数据库名。
注:只会删除show dbs显示的数据库,而且要进入到数据库中,再执行删除命令
show dbs

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

切换到aa数据库中在查看

  5、mongodb集合操作

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

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

db.createCollection("mycol", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )
  在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。
db.mycol2.insert({"name" : "云计算"})
  删除集合
db.集合名称.drop()

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

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

 
更新文档


"db.集合名称.update(
,
,
{
upsert: ,
multi: ,
writeConcern:
}

```"
 
> 参数说明:
> 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://s1.运维网.com/images/blog/201901/18/6a935b0f9f480d7092aca4732c88938c.png"=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,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(
,
{
justOne: ,
writeConcern:
}
)


 
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。
 
 
实例:
移除 title 为 'MongoDB 教程' 的文档:
db.col.remove({'title':'MongoDB 教程'})
 ![](https://s1.运维网.com/images/blog/201901/18/8ceac45e5939e3ae60723e3471c36d4d.png"=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,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://s1.运维网.com/images/blog/201901/18/567283edb98421eb2c557c84ac8471db.png"=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,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})`
 
 
 
 
 



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-672365-1-1.html 上篇帖子: Centos7 MYSQL安装与基础命令运用 下篇帖子: Centos基本操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表