gpt4 book ai didi

C# Mongodb Driver MongoDatabase 运行命令获取数据库统计信息

转载 作者:可可西里 更新时间:2023-11-01 09:26:02 27 4
gpt4 key购买 nike

IMongoDatabase 不支持 db.GetStats(); 在新版本中已弃用。
我想尝试其他方法来获取数据库统计信息。我使用以下代码运行命令,因为我们可以从 shell 获取统计信息:

var client = new MongoClient("mongodb://localhost:27017/analytics");
var db = client.GetDatabase("analytics");
var stats = db.RunCommand<BsonDocument>("db.stats()");
var collectionNames = db.RunCommand<BsonDocument>
("db.getCollectionNames()");

我在这里遇到以下错误:

JSON reader was expecting a value but found 'db'.

需要帮助在 Mongo 数据库上使用 ˘# 驱动程序执行命令,例如:

  • db.stats()
  • db.getCollectionNames()

最佳答案

您可以使用 RunCommand 方法来获取 db.stats() 结果,如下所示:

var command = new CommandDocument {{ "dbStats", 1}, {"scale", 1}};
var result = db.RunCommand<BsonDocument>(command);

结果是这样的:

{
"db" : "Test",
"collections" : 7,
"objects" : 32,
"avgObjSize" : 94.0,
"dataSize" : 3008,
"storageSize" : 57344,
"numExtents" : 7,
"indexes" : 5,
"indexSize" : 40880,
"fileSize" : 67108864,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"ok" : 1.0
}

对于db.getCollectionNames();一种方法是使用此命令:

var command = new CommandDocument { { "listCollections", 1 }, { "scale", 1 } };
var result = db.RunCommand<BsonDocument>(command);
// and to clear extra details
var colNames = result["cursor"]["firstBatch"].AsBsonArray.Values.Select(c => c["name"]);

关于C# Mongodb Driver MongoDatabase 运行命令获取数据库统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40338948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com