运行命令

您可以使用该MongoDatabase.runCommand()方法运行所有原始数据库操作 原始数据库操作是可以直接在 MongoDB 服务器 CLI 上执行的命令。这些命令包括管理和诊断任务,例如获取服务器统计信息或初始化副本集。runCommand() 使用 aBson实例上的命令对象调用该方法MongoDatabase 以运行原始数据库操作。

提示

尽可能使用mongo shell而不是 Java 驱动程序来执行管理任务,因为使用 shell 执行这些任务通常比在 Java 应用程序中更快、更容易实现。

runCommand()方法接受Bson对象形式的命令默认情况下,runCommand返回一个org.bson.Document包含数据库命令输出类型的对象 您可以指定返回类型runCommand()作为可选的第二个参数。

在以下示例代码中,我们发送dbStats命令以从特定 MongoDB 数据库请求统计信息。

笔记

此示例使用连接字符串连接到 MongoDB 实例。要了解有关连接到 MongoDB 实例的更多信息,请参阅 连接指南

package usage.examples;
import org.bson.BsonDocument; import org.bson.BsonInt64; import org.bson.Document; import com.mongodb.ConnectionString; import com.mongodb.MongoClientSettings; import com.mongodb.MongoException; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoDatabase;
public class RunCommand { public static void main(String[] args) { // Replace the uri string with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); try { Bson command = new BsonDocument("dbStats", new BsonInt64(1)); Document commandResult = database.runCommand(command); System.out.println("dbStats: " + commandResult.toJson()); } catch (MongoException me) { System.err.println("An error occurred: " + me); } } } }

 

运行上述命令时,您应该会看到类似于以下内容的输出:

dbStats: {"db": "sample_mflix", "collections": 5, "views": 0, "objects": 75595, "avgObjSize": 692.1003770090614, "dataSize": 52319328, "storageSize": 29831168, "numExtents": 0, "indexes": 9, "indexSize": 14430208, "fileSize": 0, "nsSizeMB": 0, "ok": 1}

 

 
提示
传统 API

如果您使用的是旧 API, 请参阅我们的常见问题解答页面 以了解您需要对此代码示例进行哪些更改。

 

官方文档:https://docs.mongodb.com/drivers/java/sync/current/usage-examples/command/