2014-09-23 107 views
0

下面的代碼以BsonArray的形式檢索元素。我只是想從數組中獲取數值並使用該值來計算總和。如何使用C#從MongoDB中的數組中檢索值

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); 
     } 
    } 

我試過BSON元素轉換爲Int64,INT32,雙然後使用另外的數值,但我得到的不是一個運行時錯誤可以投放bsonarray等有沒有人對如何任何想法去解決這個問題?

+0

你犯錯和粘貼代碼從另一個問題:http://stackoverflow.com/questions/25995286/how -to-exclude-the-id-field-while-retrieving-and-displayed-data-from-mongodb -u? :) – razon 2014-09-23 17:55:17

+0

如果你有bsonarray然後將其轉換爲數組,而不是簡單的類型爲int和雙重 – razon 2014-09-23 17:57:51

+0

@razon,那另一個問題也是我的,但這個問題是不同的,這是一個延續..,所以這個BsonElement你在上面的代碼中看到的實際上是一個BsonArray – Neville 2014-09-23 18:16:20

回答

1

我想出瞭解決方案,通過進行以下修改,現在可:

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