1,安装

下载解压安装包

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.5.tgz
tar -xvzf mongodb-linux-x86_64-3.6.5.tgz
mv mongodb-linux-x86_64-3.6.5 mongodb

环境变量配置

vi /etc/pfofile
#最后加入mongo的bin目录
export PATH=$PATH:/usr/local/mongodb/bin
#刷新环境变量
source /etc/profile #创建mongodb的数据库目录
cd mongodb/
mkdir db

配置文件(etc/mongodb.cnf)

port=27017 #端口
dbpath= /usr/local/mongodb/db #数据库存文件存放目录
logpath= /usr/local/mongodb/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=false #不以守护程序的方式启用,即不在后台运行
maxConns=100 #最大同时连接数
noauth=true #不启用验证
#auth=true #启用验证,设置完管理员权限后启用身份认证模式
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=wiredTiger #存储引擎有mmapv1、wiretiger、mongorocks
#bind_ip = 0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
#启动mongodb服务
mongod --config /etc/mongodb.cnf&
#服务已启动
[root@tencent01 bin]# ps -ef|grep mongodb
root 21246 20823 25 11:27 pts/0 00:00:01 ./mongod --config /etc/mongodb.cnf
root 21268 20823 0 11:27 pts/0 00:00:00 grep --color=auto mongodb

不启用验证方式,直接mongo命令就可以登录数据

2,初始化权限

添加管理员账户

重启mongodb服务,mongo命令仍能访问数据库但是不能进行任何操作

使用身份认证方式登录之后,就可以操作了 :mongo --port 27017 -u "root" -p "root123" -authenticationDatabase "admin"

3,增删查改

建库,use db_name之后,创建任何一个集合之后,数据库即可自动创建。

集合的增删查改

db.my_collection.drop();
show collections;
db.my_collection.insert({"user_id":"u001","name":"jack"});
db.my_collection.insert({"user_id":"u002","name":"jim","remark":"developer"});
db.my_collection.find({user_id:"u002"})
db.m_collection.update({user_id:"u002"},{$set:{remark:"senior developer"}})
db.my_collection.deleteMany({user_id:"u002"})

4,备份还原

mongodump -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -o /data/backup/
mongodump -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -d my_mongodb -o /data/backup/
mongorestore -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -d my_mongodb --drop /data/backup/

备份

还原

5,典型实际应用场景(自己YY出来的)

以博客园的文章为例,一篇文章无非就是“作者”,“标题”,“内容”,“发布时间”,“支持数”,“反对数”,“创建时间”,“评论”,等等元素
对于评论,包含了评论的“作者”,“内容”,“支持数”,“反对数”,“评论时间”等等,又是一个子文档,归结于文章的一部分,
如果用传统的关系数据库,看复杂程度,要表示这些信息,少说也要十张八张表,而且任何一个操作都不会太简单。
如果用mongodb,一篇文章,所有的信息都可以用一条集合来表示,通过操作这条集合的不同元素来实现,极大地减少了对数据操作的简化程度。

如下,是文章本身的信息

db.article.insert({"id":"1",
"作者":"一个牛逼的人",
"title":"博客园文章",
"content":"很长的一篇文章",
"支持":"0",
"反对":"0",
"create_date":"2018-6-14"
});

添加评论信息(某个文档下面添加子文档)

db.article.update({"id":"1"},
{
$push:
{ comments:
{
"id" : "·",
"user_name" : "jack",
"content" : "1楼的评论……",
"支持":"0",
"反对":"0",
"create_date" : "20180614"
}
}
}) db.article.update({"id":"1"},
{
$push:
{ comments:
{
"id" : "2",
"user_name" : "mike",
"content" : "2楼的评论……",
"支持":"0",
"反对":"0",
"create_date" : "20180614"
}
}
})

整体来看,从安装到使用,还是非常简单的,开源技术想都不用想,难点在于运维,高可用,以及各种未知的坑的处理。

参考:
权限:https://blog.csdn.net/u013451157/article/details/78765784
安装:https://www.cnblogs.com/clsn/p/8244206.html
备份:https://blog.csdn.net/junshangshui/article/details/79371316

MongoDB基础入门的更多相关文章

  1. MongoDB基础入门视频教程

    MongoDB基础入门视频教程http://www.icoolxue.com/album/show/98

  2. 分布式文档存储数据库之MongoDB基础入门

    一.MongoDB简介 MongoDB是用c++语言开发的一款易扩展,易伸缩,高性能,开源的,schema free 的基于文档的nosql数据库:所谓nosql是指不仅仅是sql的意思,它拥有部分s ...

  3. mongodb 基础入门教程

    算是学习下来精炼的笔记,希望对大家有帮助.如果有问题欢迎大家指正. 0.概述 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保 ...

  4. MongoDB基础入门003--使用官方驱动操作mongo,C#

    本篇先简单介绍一下,使用官方驱动来操作MongoDB.至于MongoDB原生的增删改查语句,且等以后再慢慢学习. 一.操作MongoDB的驱动主要有两个 1.官方驱动:https://github.c ...

  5. MongoDB基础入门002--基本操作,增删改查

    一.这里只是演示最基本的操作,更多的信息可以去官网.https://docs.mongodb.com/manual 打开一个cmd,输入mongo命令打开shell,其实这个shell就是mongod ...

  6. MongoDB基础入门001--安装

    关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中"集合" 就是对应关系数据库中的"表",& ...

  7. MongoDB学习——基础入门

    MongoDB--基础入门 MongoDB是目前比较流行的一种非关系型数据库(NoSql),他的优势这里不废话,我们关注怎么使用它. 安装 下载,首先肯定要去下载,我们去官网下载,在国内,可能没FQ可 ...

  8. Mongodb最基础入门教程

      Mongodb最基础入门教程 如果想了解一下redis的入门教程,可以去看一下我的上一篇博客 Mongodb的安装大家可以参考一下其他博主的博客,这里我就不做介绍了.不过值得注意的是,在Linux ...

  9. Node.js和MongoDB - MongoJS入门

    第一次尝试翻译外国牛人的博文,希望大家喜欢. 本文源码详见:https://github.com/njaulj/mongojs 一点都不夸大的说,近年来node.js和mongodb的确是大放异彩,在 ...

随机推荐

  1. day03 文件操作

    目录 1.文件操作实例 2.文件常用操作 3.with模块操作文件 常用实例,把文件里面的内容读出来做成字典的形式在做成字列表展示. 1.精简版. lst = []f = open("fil ...

  2. Windows和Office激活工具Kmsauto Net

    对于微软操作系统和OFFICE的激活,以前笔者用过 ”HEU_KMS_Activator_v11.2.0” ,不过这个工具速度相对比较慢.今天给大家推荐一个新的激活工具:KmsautoNet . 很简 ...

  3. Windows Server 2008 R2 /2012 修改密码策略

    今天建了域环境,在添加新用户的时候,发现用简单的密码时域安全策略提示密码复杂度不够,于是我就想在域安全策略里面把密码复杂度降低一点. 问题:    在“管理工具 >> 本地安全策略 > ...

  4. declaration may not appear after executable statement in block

    keil 编译时出现 declaration may not appear after executable statement in block,找到keil工程对应的函数 定义的地方出现在了赋值的 ...

  5. CSS3 Vendor-prefixing

    Browser vendors needed a way to add support for new features that were not yet standardized, but wit ...

  6. python yield返回多个值

    yield可以返回多个值到setup函数中去,但是需要用括号括起来,然后下面具体的函数接受到传值就不需要每次都实例化了. 举例如下: @pytest.fixture()def setup(driver ...

  7. JIRA的邮件通知

    提交测试或提交上线申请时发送给相关的开发人员.测试人员.运维人员. 使用插件Notification

  8. Selenium之动作链(ActionChains)

    用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件——ActionChains   se ...

  9. CFile、CStdioFile、FILE和其他文件操作(转+总结)

    CFile.CStdioFile.FILE和其他文件操作(转+总结) 2010-04-10 20:36:33|  分类: VC++|举报|字号 订阅     下载LOFTER我的照片书  |     ...

  10. 使用svn创建分支!

    1 在主分支上 右键svn---选中 branch/Tag选项 2,填写新分支目录之后 点击 ok键 3,在新创建的分支目录 右键 --> Chenckout下  就可以把代码拉下来了 4.更新 ...