首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过mongoDB Java驱动程序获取mongoStat

MongoDB Java驱动程序通过使用MongoDB Java Driver,可以获取MongoDB的状态信息。

以下是获取mongoStat信息的示例代码:

代码语言:java
复制

import com.mongodb.ConnectionString;

import com.mongodb.client.MongoClient;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoDatabase;

import com.mongodb.client.model.Aggregates;

import com.mongodb.client.model.GraphLookup;

import com.mongodb.client.model.LookupOptions;

import org.bson.Document;

import org.bson.conversions.Bson;

import java.util.Arrays;

public class MongoStat {

代码语言:txt
复制
public static void main(String[] args) {
代码语言:txt
复制
    String connectionString = "mongodb+srv://username:password@cluster0.mongodb.net/test?retryWrites=true&w=majority";
代码语言:txt
复制
    MongoClient mongoClient = new MongoClient(connectionString);
代码语言:txt
复制
    MongoDatabase database = mongoClient.getDatabase("test");
代码语言:txt
复制
    MongoCollection<Document> collection = database.getCollection("test");
代码语言:txt
复制
    Bson match = Aggregates.match(eq("_id", 1));
代码语言:txt
复制
    Bson unwind = Aggregates.unwind("$document");
代码语言:txt
复制
    Bson graphLookup = Aggregates.graphLookup(
代码语言:txt
复制
            "collection1",
代码语言:txt
复制
            new Document("$id"),
代码语言:txt
复制
            "collection1",
代码语言:txt
复制
            new GraphLookup.GraphLookupOptions().depthField("depth"));
代码语言:txt
复制
    Bson addFields = Aggregates.addFields(new Document("document",
代码语言:txt
复制
            new Document("$concatArrays", Arrays.asList("$document", "$lookup"))));
代码语言:txt
复制
    Bson unwindAddFields = Aggregates.unwind("$document");
代码语言:txt
复制
    Bson addGraphLookup = Aggregates.addGraphLookup(
代码语言:txt
复制
            "collection2",
代码语言:txt
复制
            new Document("$id"),
代码语言:txt
复制
            "collection2",
代码语言:txt
复制
            new GraphLookup.GraphLookupOptions().depthField("depth"));
代码语言:txt
复制
    Bson addFieldsAddGraphLookup = Aggregates.addFields(new Document("document",
代码语言:txt
复制
            new Document("$concatArrays", Arrays.asList("$document", "$lookup"))));
代码语言:txt
复制
    Bson unwindAddFieldsAddGraphLookup = Aggregates.unwind("$document");
代码语言:txt
复制
    Bson graphLookupArray = Aggregates.graphLookup(
代码语言:txt
复制
            "collection1",
代码语言:txt
复制
            new Document("$id"),
代码语言:txt
复制
            "collection1",
代码语言:txt
复制
            new GraphLookup.GraphLookupOptions().depthField("depth"));
代码语言:txt
复制
    Bson addFieldsGraphLookupArray = Aggregates.addFields(new Document("document",
代码语言:txt
复制
            new Document("$concatArrays", Arrays.asList("$document", "$lookup"))));
代码语言:txt
复制
    Bson unwindAddFieldsGraphLookupArray = Aggregates.unwind("$document");
代码语言:txt
复制
    Bson graphLookupArrayAddFields = Aggregates.graphLookup(
代码语言:txt
复制
            "collection1",
代码语言:txt
复制
            new Document("$id"),
代码语言:txt
复制
            "collection1",
代码语言:txt
复制
            new GraphLookup.GraphLookupOptions().depthField("depth"));
代码语言:txt
复制
    Bson addFieldsGraphLookupArrayAddFields = Aggregates.addFields(new Document("document",
代码语言:txt
复制
            new Document("$concatArrays", Arrays.asList("$document", "$lookup"))));
代码语言:txt
复制
    Bson unwindAddFieldsGraphLookupArrayAddFields = Aggregates.unwind("$document");
代码语言:txt
复制
    Bson addFieldsGraphLookupArrayAddFieldsArray = Aggregates.addFields(new Document("document",
代码语言:txt
复制
            new Document("$concatArrays", Arrays.asList("$document", "$lookup"))));
代码语言:txt
复制
    Bson unwindAddFieldsGraphLookupArrayAddFieldsArray = Aggregates.unwind("$document");
代码语言:txt
复制
    Bson addFieldsGraphLookupArrayAddFieldsArrayArray = Aggregates.addFields(new Document("document",
代码语言:txt
复制
            new Document("$concatArrays", Arrays.asList("$document", "$lookup"))));
代码语言:txt
复制
    Bson unwindAddFieldsGraphLookupArrayAddFieldsArrayArray = Aggregates.unwind("$document");
代码语言:txt
复制
    Bson addFieldsGraphLookupArrayAddFieldsArrayArrayArray = Aggregates.addFields(new Document("document",
代码语言:txt
复制
            new Document("$concatArrays", Arrays.asList("$document", "$lookup"))));
代码语言:txt
复制
    Bson unwindAddFieldsGraphLookupArrayAddFieldsArrayArrayArray = Aggregates.unwind("$document");
代码语言:txt
复制
    Bson addFieldsGraphLookupArrayAddFieldsArrayArrayArrayArray = Aggregates.addFields(new Document("document",
代码语言:txt
复制
            new Document("$concatArrays", Arrays.asList("$document", "$lookup"))));
代码语言:txt
复制
    Bson unwindAddFieldsGraphLookupArrayAddFieldsArrayArrayArrayArray = Aggregates.unwind("$document");
代码语言:txt
复制
    Bson addFieldsGraphLookupArrayAddFieldsArrayArrayArrayArrayArray = Aggregates.addFields(new Document("document",
代码语言:txt
复制
            new Document("$concatArrays", Arrays.asList("$document", "$lookup"))));
代码语言:txt
复制
    Bson unwindAddFieldsGraphLookupArrayAddFieldsArrayArrayArrayArrayArray = Aggregates.unwind("$document");
代码语言:txt
复制
    B
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 性能测试-mongostat监控mongoDB性能

    20230111_性能测试-mongostat监控mongoDB性能并生成图表 MongoDB Database Tools安装 MongoDB4.4之后不再自带mongostat命令,需要手动安装下载...参照:Manage Users and Roles — MongoDB Manual 如何在mongostat中填写认证信息?...mongostat -h 127.0.0.1:27017 -u root -p 123456 --authenticationDatabase admin 使用无头模式运行 通过--noheaders...-n 60 60>> test.log 其他命令参数可参照Reference官网文档及简书文章 图表生成 代码逻辑: 通过pandas读入清洗数据 通过pyecharts把数据生成图表 最终会生成一个...自带 mongostat支持所有x86架构不同系统的服务器 mongostat tool是MongoDB Database Tools的一部分, 安装MDT来使用mongostat 如果开启了认证, 使用者要拥有

    13510

    MongoDB详细表级操作统计及详细时延统计实现原理

    1. mongostat、mongotop监控统计信息 MongoDB官方对外开源的qps及时延监控主要有mongostat和mongotop,本章节分析这两个工具的用法及监控项。...1.1 mongostat监控统计 MongoDB提供了mongostat工具来监控当前集群的各种操作统计。Mongostat监控统计如下图所示: ?...时延范围分区桶统计 MongoDB进行汇总型操作及时延统计后,可以获取总体的读、写、command平均时延,但是无法获取例如最大时延、95%分位时延、99分位时延等。...MongoDB为了满足这些需求,同时降低代码实现难度,通过分区时延统计来满足业务的这些需求。...不同时间段对应有那些操作,例如那些操作时延比较高,可以通过时延范围分区桶统计接口获取: ?

    1.3K40

    012.MongoDB读写分离

    默认的驱动程序会连接primary节点,并且将所有读写请求都路由到主节点。但也可以通过设置驱动程序的Read Preferences 配置其他选项,将读请求路由到其他节点。...从不会受到主写锁的影响,可通过mongotop 或者 mongostat查看写锁状态; MongoDB从会在主写锁后,在恢复oplog时,进行写锁; 从优先读,而且读太多会影响写; 从节点读的权限比写锁优先级高...二 读写分离部署 2.1 正常部署副本集 参考《006.MongoDB复制(副本集)》。...4 my_rep:SECONDARY> db.getMongo().setSlaveOk() #分别连接两个Sencondary节点服务器,设置为可读状态 2.3 客户端设置读取方式 通过修改客户端读取方式实现从节点的读...在主节点不可用时,从副节点读取数据 secondary 所有的读操作,从副节点读取数据 secondaryPreferred 在副节点不可用时,从主节点读取数据 nearest 从网络延迟最小的节点获取数据

    2.4K20

    【DB应用】MongoDB性能监控工具

    mongostat详解 mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。...如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。...默认的日志文件位于/var/log/mongo/mongod.log) db.stat() 获取当前数据库的信息,比如Obj总数、数据库总大小、平均Obj大小等 > use test switched...所以miss率在mongostat里面也可以看 · 其他的都能自解释,也不是查看mongo健康状况的关键,就不说明了。...db.currentOp() Mongodb 的命令一般很快就完成,但是在一台繁忙的机器或者有比较慢的命令时,你可以通过db.currentOp()获取当前正在执行的操作。

    1.1K40

    MongoDB多纬度监控方法详解

    一、mongostat工具方法 mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。...如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。...mongostat命令参数 --help : 查看帮助信息 --version : 查看mongodb版本号 --host : 要连接的主机同时也可以指定端口...conn :当前连接数 time :时间戳 二、mongo内置函数方法 db.stat()函数 获取当前数据库的信息,比如Obj总数、数据库总大小、平均Obj大小等 > use test switched...801931264, "fileSize" : 6373244928, "ok" : 1 } 输出参数说明 collections : 表示当前数据库有多少个collections.可以通过运行

    1.4K50

    如何通过Java反射获取泛型类型信息

    泛型的使用场景 在讨论如何用反射获取泛型类型之前,我们先来回顾下,在Java里面什么时候会使用泛型,了解这个问题之后,我们才能继续思考如何用反射获取泛型类型。...但类似第二种场景中通过对象的指针引用,我们是可以通过反射获取其泛型的类型信息的,但要注意局部变量是没法获取其泛型信息的。...在Java里面可以通过反射获取泛型信息的场景有三个,分别是: (1)成员变量的泛型 (2)方法参数的泛型 (3)方法返回值的泛型 注意,通过对象本身也是没法获取的。...不能通过发射获取泛型类型信息的场景有二个,分别是: (1)类或接口声明的泛型信息 (2)局部变量的泛型信息 获取方法返回值的泛型类型 如下面定义的一个测试类: public class MyClass...,并介绍了那些场景不能使用反射获取其类型信息,通过反射获取参数的类型的泛型信息其实是非常有用的一个功能,比如在一些json工具的开源包里面,可以对Java里面泛型的各种List,List等类型做正确识别

    9.3K21

    MONGODB 监控 那些基本 “点” 到东拉西扯 (一)

    1 最常用的监控程序就是MOGNODB 自提供的 mongostat 通过 mongostat 可以查看 insert query update delete 等操作的类型并且mongostat...同时为了保证数据的安装 mongostat 也是需要输入用户名和密码的并且你提供的用户需要 clusterMonitor 的权限。...通过这个基本的监控,我们可以掌握,例如某些故障时刻或数据库不正常时刻的 insert query,update delete 的数据量,看看有什么异常,同时也可以看到 dirty 看看脏页是否过多,系统的资源是否有异常...repl:复制集中的状态 当然如果你觉得这个命令在查看一些对比上一条数据之间有多少差异的数据时比较麻烦,你可以使用 MONGOSTAT 提供的 diff 命令来满足你的需求-o 'host,mem.bits...那如何通过命令行的方式,一次性的监控复制集中所有机器,并且是交换的方式 mongostat 也提供了相关的方式 当然如果你在初接手mongodb 或集合的情况下,你也可以使用 pt-mongodb-summary

    74610

    MongoDB运维与开发(7)---MongoDB监控

    // MongoDB运维与开发(7)---MongoDB监控 // MongoDB中自带两个监控的工具,分别是mongostat和mongotop,今天我们看看这两个工具的使用方法。...mongostat mongostat工具提供了mongod和mongos的运行状态和数据,可以从mongostat工具的执行结果中获取如下信息: [root@VM-0-14-centos ~]# mongostat...会自动批量查询 command代表primary和secondary的节点指令个数,如果是在从库上执行,则代表从库执行的命令数据以及复制从库的其他实例的命令执行情况,二者通过|分割。...因为它显示的结果比较长,这里我们只说说常用的几个信息: host:主机名字 version:MongoDB版本 process:PID进程号 uptime:主机的运行时间 asserts:MongoDB...启动后报警的统计数量 connections:MongoDB的连接统计信息 network:MongoDB的网路情况 storageEngine:存储引擎信息 mem:当前使用的内存信息 db.stats

    1.1K10

    MongoDB高并发性能问题解决方案

    数据库方面,mongodb支持高并发,这一点是关系型数据库无法媲美的,下面是找到的一些性能对别数据,可以看一看:比较 MongoDB 与 MySQL 以及性能测试MongoDB mysql 性能压测 1...客户端连接池优化 程序刚启动一个请求总共更新8次mongodb数据库花费时间100ms左右,后期随着并发数量增大时间随之到了500ms以上,可能是请求阻塞在了获取连接上,mongodb连接池数量太少 不够用...并非所有驱动程序都支持此选项。最后发现对性能提升没有什么用。...上面排查了客户端和网络链路问题都没有得到解决,剩下问题可能出现在服务端 也就是mongo数据库上,我们从以下几个方面查起mongostat分析我的mongodb安装在windows环境下:如果你的...mongo安装目录bin下没有mongostat和mongotop命令,可以到官网下载mongodb-database-tools安装包,解压后将bin目录下的文件复制到mongodb安装目录的bin目录下执行即可

    17400
    领券