运行命令
您可以使用该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}
官方文档:https://docs.mongodb.com/drivers/java/sync/current/usage-examples/command/