C# 如何使用C从MongoDB中的数组中检索值#
下面是以BsonArray形式检索元素的代码。我只想从数组中获取数值,并使用该值计算总和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
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-我在找到解决方案时回答了这个问题,它现在起作用了!!非常感谢!!