C# 如何使用C从MongoDB中的数组中检索值#

C# 如何使用C从MongoDB中的数组中检索值#,c#,mongodb,mongodb-.net-driver,mongodb-query,C#,Mongodb,Mongodb .net Driver,Mongodb Query,下面是以BsonArray形式检索元素的代码。我只想从数组中获取数值,并使用该值计算总和 var fields = "secondary.amount"; foreach (var document in collection.FindAllAs<BsonDocument>().SetFields(fields)) { foreach (string name in document.Names) { BsonE

下面是以BsonArray形式检索元素的代码。我只想从数组中获取数值,并使用该值计算总和

var fields = "secondary.amount";
    foreach (var document in collection.FindAllAs<BsonDocument>().SetFields(fields))
    {
        foreach (string name in document.Names)
        {
            BsonElement element = document.GetElement(name);                  
            Console.WriteLine("{0}", element.Value);
        }
    }
var fields=“secondary.amount”;
foreach(collection.FindAllAs().SetFields(fields)中的var文档)
{
foreach(document.Names中的字符串名称)
{
BsonElement元素=document.GetElement(名称);
WriteLine(“{0}”,element.Value);
}
}

我尝试将bson元素转换为int64、int32、double,然后使用数字值进行加法,但我遇到了一个运行时错误,即无法强制转换bsonarray等。有人知道如何执行此操作吗?

我通过做以下更改找到了解决方案,现在它可以工作了:

foreach (BsonDocument nestedDocument in Document["name"].AsBsonArray)
                        {
                            Total += Convert.ToDouble(nestedDocument["amount"]);
                        }

您是否犯了错误并粘贴了其他问题的代码:?:)如果您有bsonarray,那么将其转换为Array,而不是int和double@razon,另一个问题也是我的,但这个问题不同,这是一个延续,因此,您在上面的代码中看到的这个BsonElement实际上是一个BSONArray,您的文档在服务器中看起来像什么?而且,正如@razon所说,如果它是BsonArray,那么首先将它转换为BsonArray…@CraigWilson-我在找到解决方案时回答了这个问题,它现在起作用了!!非常感谢!!