Вставьте файл json, содержащий массив документов json, в коллекцию ammongodb, используя BsonDocument BsonArray - PullRequest
1 голос
/ 29 сентября 2019

Я работаю над методом асинхронного чтения содержимого файла json (содержащего массив объектов json) и вставки его в коллекцию mongodb, но я не могу понять, в чем проблема.При отладке ошибки нет, но моя коллекция все еще пуста.

 public async void InsertDocumentsInCollection(string File)
                    {
                        string text = System.IO.File.ReadAllText(File);
                        IEnumerable<BsonDocument> doc = BsonSerializer.Deserialize<BsonArray>(text).Select(p => p.AsBsonDocument);
            //Name of the collection is Cars
                        var collection = _database.GetCollection<BsonDocument>("Cars");
                        await collection.InsertManyAsync(doc);  
                    }

1 Ответ

0 голосов
/ 29 сентября 2019

Я попытался воспроизвести проблему следующим образом, но она работает просто отлично.возможно, что-то не так с содержимым текстового файла.Вы можете опубликовать образец файла?

using MongoDB.Bson;
using MongoDB.Bson.Serialization;
using MongoDB.Driver;
using System.IO;
using System.Linq;
using System.Threading.Tasks;

namespace StackOverflow
{
    public class Program
    {
        private static async Task Main(string[] args)
        {
            var content = File.ReadAllText("E:\\Downloads\\cars.txt"); //https://mongoplayground.net/p/LY0W7vjDuvp

            var docs = BsonSerializer.Deserialize<BsonArray>(content).Select(p => p.AsBsonDocument);

            var collection = new MongoClient("mongodb://localhost")
                                    .GetDatabase("test")
                                    .GetCollection<BsonDocument>("Cars");

            await collection.InsertManyAsync(docs);
        }
    }
}
...