官方文档:https://docs.mongodb.com/drivers/java/sync/current/usage-examples/command/
您可以使用该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, 请参阅我们的常见问题解答页面 以了解您需要对此代码示例进行哪些更改。