public void Load(BulkLoad load) { var tasks = new Task[load.Collections.Count]; int i = 0; foreach (var pair in load.Collections) { var bulkCollection = pair.Value; var collectionName = pair.Key; var keys = bulkCollection.Documents.Keys; var bsonIdArray = new BsonArray(keys); var collection = _mongoDatabase.GetCollection(bulkCollection.CollectionType, collectionName); tasks[i] = Task.Factory.StartNew(() => { MongoCursor cursor = collection.FindAs(bulkCollection.CollectionType, Query.In("_id", bsonIdArray)); foreach (var doc in cursor) { var id = _metadata.GetDocumentId(doc); bulkCollection.Documents[id] = doc; } }); i++; } Task.WaitAll(tasks); }
public static BulkLoad SelectedToBulkLoad(List<Selected> selected) { var bulk = new BulkLoad(); var av = bulk.Collections["averages"] = new BulkLoadCollection(typeof(AverageDocument)); var an = bulk.Collections["anothers"] = new BulkLoadCollection(typeof(AnotherDocument)); foreach (var one in selected) { av.Documents.TryAdd(one.AverageId, null); an.Documents.TryAdd(one.AnotherId, null); } return bulk; }