当前位置:   article > 正文

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

centos 登录mongo

由于项目性能需求,尝试研究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文件,打开添加如下内容

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

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

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

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

文件内容如下:

  1. dbpath = /data/db #数据文件存放目录
  2. logpath = /logs/mongodb.log #日志文件存放目录
  3. port = 27017 #端口
  4. fork = true #以守护程序的方式启用,即在后台运行
  5. auth=true #需要认证。如果放开注释,就必须创建MongoDB的账号,使用账号与密码才可远程访问,第一次安装建议注释
  6. 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包

  1. <dependency>
  2. <groupId>org.mongodb</groupId>
  3. <artifactId>mongodb-driver-sync</artifactId>
  4. <version>4.10.2</version>
  5. </dependency>

连接mongo

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

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

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

写入数据

  1. Document document = new Document("name", data.name).append("notes", data.notes)
  2. .append("type", data.type).append("rdevid", data.rdevid).append("priority", data.priority)
  3. .append("ip", data.ip).append("port", data.port).append("r_protocol_id", data.r_protocol_id)
  4. .append("sign_lag", data.sign_lag).append("r_cert_id", data.r_cert_id)
  5. .append("channeltype", data.channeltype).append("linktype", data.linktype)
  6. .append("protocolset", data.protocolset).append("collectCycle", data.collectCycle)
  7. .append("takeovertype", data.takeovertype);
  8. collection.insertOne(document);

添加单个索引

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

添加关联索引

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

关联查询

  1. Bson query = Filters.and(Filters.eq("devId", 71),Filters.eq("type_name", "日志"));
  2. // Document executionPlan = collection.find(query).explain();
  3. FindIterable<Document> cursor = collection.find(query);
  4. // 遍历查询结果
  5. for (Document document : cursor) {
  6. System.out.println("查询结果:" + document);
  7. }

查看该查询使用的方案

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/894631
推荐阅读
相关标签
  

闽ICP备14008679号