MongoDB 安装与基本操作

MongoDB 安装与基本操作

1. MongoDB 与 MySQL概念对比

MySQLMongoDB描述
databasedatabase数据库
tablecollection表/集合
rowdocument行/文档
columnfield字段

2. MongoDB 安装

2.1 更新源

首先,确保你的包是最新的。打开终端并输入:

apt-get update && sudo apt upgrade -y

2.2 在线安装

apt-get install mongodb

2.3 查看服务状态

systemctl status mongodb

在这里插入图片描述

2.4 创建用户名密码

利用mongo命令进入MongoDB

root@ecs-94a9:~# mongo
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
Server has startup warnings:
2021-10-14T14:35:26.608+0800 I STORAGE  [initandlisten]
2021-10-14T14:35:26.608+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2021-10-14T14:35:26.608+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2021-10-14T14:35:27.073+0800 I CONTROL  [initandlisten]
2021-10-14T14:35:27.073+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2021-10-14T14:35:27.073+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2021-10-14T14:35:27.073+0800 I CONTROL  [initandlisten]
2021-10-14T14:35:27.074+0800 I CONTROL  [initandlisten]
2021-10-14T14:35:27.074+0800 I CONTROL  [initandlisten] ** WARNING: You are running on a NUMA machine.
2021-10-14T14:35:27.074+0800 I CONTROL  [initandlisten] **          We suggest launching mongod like this to avoid performance problems:
2021-10-14T14:35:27.074+0800 I CONTROL  [initandlisten] **              numactl --interleave=all mongod [other options]
2021-10-14T14:35:27.074+0800 I CONTROL  [initandlisten]
>

> use admin;
switched to db admin
> db.createUser({ user:'admin',pwd:'sia12345678',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]})
Successfully added user: {
        "user" : "admin",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                },
                "readWriteAnyDatabase"
        ]
}
> db.auth('admin', 'sia12345678')
1
> exit;

之后修改/etc/mongodb.conf文件,将auth = true这一行打开

# mongodb.conf

# Where to store the data.
dbpath=/var/lib/mongodb
......

# Turn on/off security.  Off is currently the default
#noauth = true
auth = true

......

2.5 查看27017是否可以远程访问

root@ecs-94a9:~# netstat -ano|grep 27017
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      off (0.00/0/0)
unix  2      [ ACC ]     STREAM     LISTENING     86902045 /run/mongodb/mongodb-27017.sock

可以看出不允许访问,修改/etc/mongodb.conf文件,将bind_ip = 127.0.0.1改为bind_ip = 0.0.0.0
同时针对auth = true

# mongodb.conf


# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 0.0.0.0
#port = 27017

......

2.6 重启MongoDB服务

systemctl restart mongodb

3. 显示数据库

show dbs;
use db;
db;

4. 增加数据

db.Device4.insert({
	deviceid: 'device1',
	devicename: '压力表',
	devicetype: '计量表',
	attribute: '压力值',
	dataInt: NumberInt(2),
	dataDouble: 2.35,
	unit: 'Mpa',
	time: ISODate("2021-10-11 07:58:51")
})

5. 删除数据

db.Device4.remove({devicename:'压力表2'})

6. 更新数据

db.Device4.update({devicename:'压力表3'}, {$set:{dataDouble:9.99}})

7. 查看数据

db.Device4.find()
db.Device4.find({deviceid: 'device1'})

8. 数据导出与导入

数据导出:

mongodump --host 127.0.0.1 --port 27017 -u admin -p sia12345678 --db KnowledgeGraph --collection Device4 -o /tmp/mongobak --authenticationDatabase admin
mongoexport --host 172.23.8.16 --port=1240 -u spark -p spark --db locateInfo --collection dataCollect --out locateInfo.json

数据导入:这部分还是利用Navicat吧


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王凯琦

谢谢你们的支持,我会继续努力的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值