Mongo db安装和使用

安装

linux下安装

https://blog.csdn.net/qq_41107231/article/details/108028319

1. 去官网下载安装包,自己选择需要的包,我这边是redhat 8,64位的,当然也可直接拷贝,只需要一些可执行文件,参见下方windows

cd /usr/local/
mkdir mongodb
下载:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.4.tgz
安装:tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz    

2. 创建相关目录和配置文件

cd /usr/local/mongodb/
mkdir data
mkdir logs
cd ./logs
touch mongodb.log
cd ../
mkdir etc
cd etc
touch mongodb.conf

3. 配置mongodb.conf

#数据库路径
dbpath=/usr/local/mongodb/data
#日志输出文件路径
logpath=/usr/local/mongodb/logs/mongodb.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#端口号 默认为27017
port=27017
#允许远程访问
bind_ip=0.0.0.0
#开启子进程
fork=true
#开启认证,必选先添加用户,先不开启(不用验证账号密码)
#auth=true

4.将mongodb服务加入环境变量

vi /etc/profile
在最后一行添加:export PATH=$PATH:/usr/local/mongodb/mongodb-linux-x86_64-4.0.13/bin
使配置文件生效:source /etc/profile
重启

5.启动mongodb

./mongod --config /usr/local/mongodb/etc/mongodb.conf

6. 添加用户

运行mongo启动客户端
use databasename(数据库名,假如没有会自动创建)
db.createUser({user:"abc",pwd:"123456",roles:[{"role":"readWrite","db":"databasename"}]})

7.创建相关表,或者直接导入数据库

mongo打开客户端
use dbName
db.dropDatabase()
mongorestore -d dbName /path

8. 将mongodb配置开机自启动

修改/etc/rc.local
添加/usr/local/mongodb/mongodb-linux-x86_64-rhel80-4.4.4/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf

 

 

 windows下安装:

  傻瓜式安装,安装完成将目录“C:\Program Files\MongoDB\Server\4.4\bin”添加到环境变量path

    1. 输入mongod –version, 查看是否安装成功

  

 

 

   2. 输入mongod启动mongodb

  

 

  确认是否自动启动

  

 

 

 

  3. 输入mongo打开客户端,然后就可以输入命令查看数据

   

 

 

   4. 安装mongodump,mongorestore等工具

  下载的数据库文件缺失很多工具,需要单独下载

  下载:https://www.mongodb.com/try/download/database-tools

  然后把对应的.exe放入到mongo安装目录下面

  

 

  5. 创建数据库和用户

创建数据库:
    use myDb(数据库名字), 如果数据库不存在,则创建数据库,否则切换到指定数据库(这是通过show dbs看不到新建的数据库,需要插入一些数据才能看到)

创建用户:
  db.createUser({user:
"me",pwd:"123456",roles:[{"role":"readWrite","db":"myDb"}]})

 

 使用

  官方文档地址:

https://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html

 

  下面列举几个常用的功能:

  1. 备份

linux直接运行下面命令 
"mongodump -d ITZEX -o /tmp/mongobackup/"

windows假如没有配置path,进入到mongo的安装目录bin下面,运行
"mongodump -d ITZEX -o c:\mongobackup"

  备份完生成如下文件

  

 

   2. 恢复

先删除数据库 mongo->use myDB->db.dropDatabase()
然后恢复指定路径的备份文件
mongorestore -d myDB C:\Users\me\Desktop\myDB

  3. 删除索引

查询:db.getCollection('表名').getIndexes()
删除:db.getCollection('表名').dropIndex('索引名')

  4. Mongodb插入查询的时候发现会比实际的少8个小时,jvm和.net都有对应的设置,原理如下:插入的时候,mongo驱动会自动把时间转换成0时区的时间,存入数据库,然后你会发现数据库中的数据跟实际的比对确实是少了8个小时。查询的时候,查出来的数据,mongo驱动会自动再加上8小时,所以你使用的时候就感觉不出有问题。假如你需要数据库里面存储的时间跟实际的一致,那么不管你插入还是查询都必须加8小时(对于mongo的insert和find是这样,但是aggregate方法不需要加)。

  5. 有一次碰到mongo命令连接不上,怀疑mongo挂了,我采取了如下步骤

1. 通过ps –ef|grep mongo查看有没有该进程,假如有就kill
2. 找出mongod.conf文件
find / -name *mongo*
3. Mongodb 重启
/usr/bin/mongod -f /etc/mongod.conf

   6. 删除某个字段

使用 db.表名.update 配合$unset 使用
例如我们的表noPk 有两个列有字段名是script_type 我们要删除script_type=kshell字段
> db.noPK.find()
{ "_id" : ObjectId("5a50642b908e6b07a84472a2"), "name" : "javascript", "value" : "vue.js" }
{ "_id" : ObjectId("5a50655b908e6b07a84472a3"), "name" : "Xshell", "type" : "script" }
{ "_id" : ObjectId("5a506b40908e6b07a84472a4"), "name" : "Xshell", "type" : "script" }
{ "_id" : ObjectId("5a506b9d908e6b07a84472a5"), "name" : "Xshell", "type" : "script", "script_type" : "bash_shell" }
{ "_id" : ObjectId("5a50703c908e6b07a84472a6"), "name" : "shell", "type" : "script", "script_type" : "kshell" }
>
 
删除:
> db.noPK.update({"name": "shell"}, {$unset:{"script_type":"kshell"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.noPK.find()
{ "_id" : ObjectId("5a50642b908e6b07a84472a2"), "name" : "javascript", "value" : "vue.js" }
{ "_id" : ObjectId("5a50655b908e6b07a84472a3"), "name" : "Xshell", "type" : "script" }
{ "_id" : ObjectId("5a506b40908e6b07a84472a4"), "name" : "Xshell", "type" : "script" }
{ "_id" : ObjectId("5a506b9d908e6b07a84472a5"), "name" : "Xshell", "type" : "script", "script_type" : "bash_shell" }
{ "_id" : ObjectId("5a50703c908e6b07a84472a6"), "name" : "shell", "type" : "script" }
>

 

  

 

posted @ 2020-12-27 14:19  小鸡蛋白  阅读(979)  评论(0编辑  收藏  举报