2016-10-31 6 views
1

IMongoDatabaseは、新しいバージョンでは非推奨となるdb.GetStats();をサポートしていません。
データベースの統計情報を取得する別の方法を試してみたい。私はここに、次のエラーを取得していますC#Mongo Driver IMongoDatabaseデータベースの統計情報を取得するためのRunCommand

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リーダーが値を期待していたが、「DB」を見つけ、我々はシェルから統計情報を取得することができますように私は、コマンドを実行するには、以下のコードを使用します。

のように、ژ#ドライバを使用してモンゴデータベース上でコマンドを実行するのに役立つ必要があります。

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

答えて

0

あなたが実行することにより、DB内のすべてのコレクション名を取得することができます次のコード:xにはコレクション名が含まれています。

 String connectionString = "mongodb://your_address_here"; 

     var client = new MongoClient(connectionString); 

     var database = client.GetDatabase("db_name_from_which_you_need_collections"); 

     var cnames = database.ListCollections(); 

     var allNames = cnames.ToList(); 
     foreach(var x in allNames) 
     { 
      Console.WriteLine(x.ToString()); 

     } 

x.Values.FirstOrDefault()を選択すると、さらにスタンドアロン名を取得できます。ToString();

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

結果は次のようになります:

3

次のようなdb.stats()結果を得るためにRunCommandメソッドを使用することができます

{ 
    "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"]); 
関連する問題