如何使用 Mongo 客户端 class 从 Mongo java 驱动程序调用 db.Collection.stats()
How to call db.Collection.stats() from Mongo java driver using MongoClient class
我正在使用这个依赖项。
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.12.2</version>
</dependency>
包裹:
套餐com.mongodb.MongoClient;
如何按名称获取集合然后获取其状态,以便提供以下信息:
- 尺码
- 存储大小
Collection Status
这个 的答案似乎使用了已弃用的 class 包 com.mongodb;
// Mongodb initialization parameters.
int port_no = 27017;
String auth_user="jcg", auth_pwd = "admin@123", host_name = "localhost", db_name = "mongoauthdemo", db_col_name = "emp", encoded_pwd = "";
/* Imp. Note -
* 1. Developers will need to encode the 'auth_user' or the 'auth_pwd' string if it contains the <code>:</code> or the <code>@</code> symbol. If not, the code will throw the <code>java.lang.IllegalArgumentException</code>.
* 2. If the 'auth_user' or the 'auth_pwd' string does not contain the <code>:</code> or the <code>@</code> symbol, we can skip the encoding step.
*/
try {
encoded_pwd = URLEncoder.encode(auth_pwd, "UTF-8");
} catch (UnsupportedEncodingException ex) {
log.error(ex);
}
// Mongodb connection string.
String client_url = "mongodb://" + auth_user + ":" + encoded_pwd + "@" + host_name + ":" + port_no + "/" + db_name;
MongoClientURI uri = new MongoClientURI(client_url);
// Connecting to the mongodb server using the given client uri.
MongoClient mongo_client = new MongoClient(uri);
// Fetching the database from the mongodb.
MongoDatabase db = mongo_client.getDatabase(db_name);
// Fetching the collection from the mongodb.
MongoCollection<Document> coll = db.getCollection(db_col_name);
这是使用 MongoDB Java 驱动程序版本 3.12:
try(MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017/")) {
MongoDatabase db = mongoClient.getDatabase("test");
Document collStatsResults = db.runCommand(new Document("collStats", "myCollection"));
System.out.println(collStatsResults.get("size"));
System.out.println(collStatsResults.get("storageSize"));
}
注意try-with-resources
子句的用法;它在使用释放连接相关资源后关闭 MongoClient
对象。
我正在使用这个依赖项。
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.12.2</version>
</dependency>
包裹:
套餐com.mongodb.MongoClient;
如何按名称获取集合然后获取其状态,以便提供以下信息:
- 尺码
- 存储大小
Collection Status
这个
// Mongodb initialization parameters.
int port_no = 27017;
String auth_user="jcg", auth_pwd = "admin@123", host_name = "localhost", db_name = "mongoauthdemo", db_col_name = "emp", encoded_pwd = "";
/* Imp. Note -
* 1. Developers will need to encode the 'auth_user' or the 'auth_pwd' string if it contains the <code>:</code> or the <code>@</code> symbol. If not, the code will throw the <code>java.lang.IllegalArgumentException</code>.
* 2. If the 'auth_user' or the 'auth_pwd' string does not contain the <code>:</code> or the <code>@</code> symbol, we can skip the encoding step.
*/
try {
encoded_pwd = URLEncoder.encode(auth_pwd, "UTF-8");
} catch (UnsupportedEncodingException ex) {
log.error(ex);
}
// Mongodb connection string.
String client_url = "mongodb://" + auth_user + ":" + encoded_pwd + "@" + host_name + ":" + port_no + "/" + db_name;
MongoClientURI uri = new MongoClientURI(client_url);
// Connecting to the mongodb server using the given client uri.
MongoClient mongo_client = new MongoClient(uri);
// Fetching the database from the mongodb.
MongoDatabase db = mongo_client.getDatabase(db_name);
// Fetching the collection from the mongodb.
MongoCollection<Document> coll = db.getCollection(db_col_name);
这是使用 MongoDB Java 驱动程序版本 3.12:
try(MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017/")) {
MongoDatabase db = mongoClient.getDatabase("test");
Document collStatsResults = db.runCommand(new Document("collStats", "myCollection"));
System.out.println(collStatsResults.get("size"));
System.out.println(collStatsResults.get("storageSize"));
}
注意try-with-resources
子句的用法;它在使用释放连接相关资源后关闭 MongoClient
对象。