无法使用.Net驱动程序2.0在mongodb c#中保存文档

时间:2015-09-30 08:54:08

标签: mongodb c#-4.0 bson

我想将文档保存在集合中,我的方法如下所示,但根本不保存。

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

如果我做了异步并等待它最近运行,我需要先运行它然后才测试数据。

1 个答案:

答案 0 :(得分: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();
}