2015-09-30 44 views
0

我想將文檔保存到集合中,我的方法如下,但根本不存儲。無法使用.Net驅動程序2.0保存mongodb c#中的文檔

internal static void InitializeDb() 
    { 
     var db = GetConnection(); 
     var collection = db.GetCollection<BsonDocument>("locations"); 
     var locations = new List<BsonDocument>(); 
     var json = JObject.Parse(File.ReadAllText(@"..\..\test_files\TestData.json")); 
     foreach (var d in json["locations"]) 
     { 
      using (var jsonReader = new JsonReader(d.ToString())) 
      { 
       var context = BsonDeserializationContext.CreateRoot(jsonReader); 
       var document = collection.DocumentSerializer.Deserialize(context); 
       locations.Add(document); 
      } 
     } 
     collection.InsertManyAsync(locations); 
    } 

如果我做了異步並等待,那麼它最近運行,我需要先運行這個,然後只測試數據。

+0

你必須等待「InsertManyAsync」的方法。 –

+0

謝謝,明白了 – veshu

回答

1

以供將來參考,wait()在異步方法工作的結束就像同步

internal static void InitializeDb() 
{ 
    var db = GetConnection(); 
    var collection = db.GetCollection<BsonDocument>("locations"); 
    var locations = new List<BsonDocument>(); 
    var json = JObject.Parse(File.ReadAllText(@"..\..\test_files\TestData.json")); 
    foreach (var d in json["locations"]) 
    { 
     using (var jsonReader = new JsonReader(d.ToString())) 
     { 
      var context = BsonDeserializationContext.CreateRoot(jsonReader); 
      var document = collection.DocumentSerializer.Deserialize(context); 
      locations.Add(document); 
     } 
    } 
    collection.InsertManyAsync(locations).wait(); 
} 
相關問題