c#mongo dbstats datasize更改类型?

时间:2018-04-05 13:17:09

标签: c# mongodb

我试图从mongo数据库中获取dataSize

        var command = new BsonDocumentCommand<BsonDocument>(new BsonDocument { { "dbstats", 1} });
        var dbstats = ResultDatabase.RunCommand(command);

        var TotalRecordSize = dbstats["dataSize"].AsDouble; 

当我的数据库真的满了,但是在清除了数据库中的所有记录后,它就失败了。

Unable to cast object of type 'MongoDB.Bson.BsonInt32' to type 'MongoDB.Bson.BsonDouble'

我将其改为

var TotalRecordSize = dbstats["dataSize"].AsInt32; 

一段时间工作正常,然后我开始

Unable to cast object of type 'MongoDB.Bson.BsonDouble' to type 'MongoDB.Bson.BsonInt32'

那么我可以使用哪种数据类型?为什么DATATYPE改变了?我理解无法将一个double值放入int32,但为什么我不能将int32转换为double?

1 个答案:

答案 0 :(得分:1)

尝试使用ToDouble代替AsDouble。区别为ToDouble会将Int32转换为双倍,这是有效的。 AsDouble只会尝试投放哪个失败