Centos7安装mongodb7.0.2教程以及基础java远程使用

1 篇文章 0 订阅

由于项目性能需求,尝试研究mongodb的使用,与mysql的存储和读取性能进行比较。安装完成发现,其批量写入数据功能确实比mysql快,但是读取性能并不如mysql,但是由于其是文件型数据库,可能在内存操作点啥,会加快读取效率吧,直接读效率确实不太行。

但是既然研究了,得到的知识分享下,因为发现网上都是些在线安装或者使用4.几版本。

安装步骤

下载安装包:

mongodb-linux-x86_64-rhel70-7.0.2.tgz

mongosh-2.0.2-linux-x64.tgz

下载网站:MongoDB Enterprise Downloads | MongoDB

将安装包拖到centos系统内,使用命令解压

添加环境变量,找到/etc/profile文件,打开添加如下内容

#mongodb
export PATH=$PATH:/opt/mongodb-linux-x86_64-rhel70-7.0.2/bin
export PATH=$PATH:/opt/mongosh-2.0.2-linux-x64/bin

/opt/xxxxxx/bin,分别是俩个安装包内的bin文件夹。

配置完成后在终端应可看到mongod、mongosh指令

编写mongo启动配置文件,创建文件mongodb.conf

文件内容如下:

dbpath = /data/db #数据文件存放目录
logpath = /logs/mongodb.log #日志文件存放目录
port = 27017 #端口
fork = true #以守护程序的方式启用,即在后台运行
auth=true #需要认证。如果放开注释,就必须创建MongoDB的账号,使用账号与密码才可远程访问,第一次安装建议注释
bind_ip=0.0.0.0 #允许远程访问,或者直接注释,127.0.0.1是只允许本地访问

注:dbpath和logpath都需要手动创建一下,第一次运行时建议注释掉“auth=true”,想要验证时,再创建必要的帐号密码

启动mongo指令:

mongod --config xxxx/mongodb.conf

使用指令按照指定配置文件启动mongodb。

启动后使用“netstat -npl”,应能看到port所设置端口被启动监听

停止指令:

mongod --shutdown

终端使用

运行命令 “mongosh”

将自动进入本机的mongo服务,

创建用户如下:

创建了这个账户,就可以将配置文件内的“auth=true”注释去掉。

关闭和启动mongo后就可使用帐号密码登录。

其他终端指令操作,可自行百度和问Ai。

远程客户端访问

下载一个mongoDB Compass

安装包:mongodb-compass-1.40.4-win32-x64.exe

网站:MongoDB Compass Download (GUI) | MongoDB

该软件全为英文,可使用查看数据添加数据,其他复杂操作请自行研究。

执行exe将自动默认安装,桌面将自动打开。

输入访问地址:

mongodb://testmongo:123456@1.5.1.226:27017/

Java远程操作

引用maven包

 <dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
    <version>4.10.2</version>
 </dependency>

连接mongo

public static MongoClient mongoClient = null;
public static void initdb() {
		mongoClient = MongoClients.create("mongodb://testmongo:123456@1.5.1.226:27017/");
	}

连接表文件,连接表文件写入数据时,将直接创建对应的表文件

MongoCollection<Document> collection = mongoClient.getDatabase("logaudit").getCollection("logauditdb");

写入数据

Document document = new Document("name", data.name).append("notes", data.notes)
						.append("type", data.type).append("rdevid", data.rdevid).append("priority", data.priority)
						.append("ip", data.ip).append("port", data.port).append("r_protocol_id", data.r_protocol_id)
						.append("sign_lag", data.sign_lag).append("r_cert_id", data.r_cert_id)
						.append("channeltype", data.channeltype).append("linktype", data.linktype)
						.append("protocolset", data.protocolset).append("collectCycle", data.collectCycle)
						.append("takeovertype", data.takeovertype);
				collection.insertOne(document);

添加单个索引

collection.createIndex(Indexes.ascending("fieldName")); // 将 "fieldName" 替换为您要创建索引的字段名
	        collection.createIndex(Indexes.ascending("fieldName"));

添加关联索引

collection.createIndex(new Document("devId", 1).append("type_name", 1));

关联查询

Bson query = Filters.and(Filters.eq("devId", 71),Filters.eq("type_name", "日志"));
	       
	        
//	        Document executionPlan = collection.find(query).explain();
	        FindIterable<Document> cursor = collection.find(query);

	     // 遍历查询结果
	        for (Document document : cursor) {
	            System.out.println("查询结果:" + document);

	        }

查看该查询使用的方案

Document executionPlan = collection.find(query).explain();
	        System.out.println(executionPlan.toJson());

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值