Mongo集群搭建之MongoDB基础
Posted 神奇的老黄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongo集群搭建之MongoDB基础相关的知识,希望对你有一定的参考价值。
本来这一篇文章是应在国庆放假前发布的,无奈因为一些事情耽误了,没有完善好。。。国庆之前的一周主要是在搭建MongoDB集群,因为之前用的mongo服务是在一台服务器上,为了避免断电、误操作等情况导致服务不可用,所以决定将原来的数据库迁移到新搭建的Mongo集群中。
接下来这几篇的文章我将会更新相关的实现步骤,如果各位小伙伴有对mongo集群感兴趣的可以关注一下,也欢迎各位在留言区补充和指正。
相关介绍
Nosql DB
优劣势
概念&语法
概念
语法
属性:javascript语法。
显示数据库:show dbs
使用数据库:use db (备注:这样子就好了,db不存在,则“新建”一个出来,不会报错,事实是:直到存储docuemnt对象时才创建collection和数据库)
查询数据表:db.getCollectionNames() / show collections
数据库统计信息:db.stats()
插入记录:db.your_collection.insert(json表达式)
更新记录:db.your_collection.update(json表达式查询用, {$set:json表达式更新用}, 不存在是否插入记录-默认False, 是否更新所有数据-默认False-只更新第一条) db.your_collection.save(json表达式) :实际上是插入和更新操作的合并,记录不存在则insert(根据_id字段判断),存在则update。
删除记录:db.your_collection.remove(json表达式)
实际操作
1、安装
# 演示环境 Centos 7
# 下载
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.9.tgz
# 解压
tar -zxvf mongodb-linux-x86_64-rhel70-4.0.9.tgz
# 将解压包拷贝到指定目录
mv mongodb-linux-x86_64-rhel70-4.0.9/ /usr/local/mongodb
# 设置临时环境变量
export PATH=/usr/local/mongodb/bin:$PATH
2、启动mongo
# 新建mongo的data文件夹(存放数据库的)以及log文件夹(存放日志的)
mkdir -p /home/mongodb/{data,log}
# 指定mongo data和log路径,--fork:后台运行
mongod --dbpath=/home/mongodb/data --logpath=/home/mongodb/log/mongo.log --fork
3、连接mongo
# 上面启动的端口 默认是27017,连接时也选择默认的就好了
$ mongo
# 连接成功会出现以下提示
MongoDB shell version v4.0.9
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
...
>
4、增删改查
增
use test_db
switched to db test_db
db.user.insert({"name":"神奇的老黄","age":18,"qq":"695859954"})
WriteResult({ "nInserted" : 1 })
查
# 语法
db.collection.find(query, projection)
# 参数说明
query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
> db.user.find()
{ "_id" : ObjectId("5d91c89f10820a0dbe815511"), "name" : "神奇的老黄", "age" : 18, "qq" : "695859954" }
改
# 语法
db.collection.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 :可选,抛出异常的级别。
# 代码演示
> db.user.update({"name":"神奇的老黄"},{$set:{"name":"MagicHuang"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.user.find()
{ "_id" : ObjectId("5d91c89f10820a0dbe815511"), "name" : "MagicHuang", "age" : 18, "qq" : "695859954" }
删
# 语法
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
# 参数
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。
#代码演示
> db.user.remove({"name":"MagicHuang"})
结束语
以上MongoDB基础篇的大致内容,接下来会更新MongoDB 搭建集群的三大模式:主从模式、副本集模式、分片集群模式。各位小伙伴哪里不懂或者本文讲述的内容有错误,欢迎在评论区留言讨论~
点击左下角“阅读原文”可以查看已经写好的csdn博客,内容比较长建议按照目录顺序浏览。
推荐文章
看完本文有收获?请转发分享给更多的人
关注「神奇的老黄」 学习更多的技术
以上是关于Mongo集群搭建之MongoDB基础的主要内容,如果未能解决你的问题,请参考以下文章