Importing JSON

The .NET BSON library supports reading JSON documents with the JsonReader class.

The program below will import all documents from a file with one document per line into the collection.

Given the input file’s contents:

{ "_id" : ObjectId("5513306a2dfd32ffd580e323"), "x" : 1.0 } { "_id" : ObjectId("5513306c2dfd32ffd580e324"), "x" : 2.0 } { "_id" : ObjectId("5513306e2dfd32ffd580e325"), "x" : 3.0 } { "_id" : ObjectId("551330712dfd32ffd580e326"), "x" : 4.0 } 

And the program:

using MongoDB.Bson; using MongoDB.Bson.IO; using MongoDB.Bson.Serialization; using MongoDB.Driver; // ... string inputFileName; // initialize to the input file IMongoCollection<BsonDocument> collection; // initialize to the collection to write to. using (var streamReader = new StreamReader(inputFileName)) { string line; while ((line = await streamReader.ReadLineAsync()) != null) { using (var jsonReader = new JsonReader(line)) { var context = BsonDeserializationContext.CreateRoot(jsonReader); var document = collection.DocumentSerializer.Deserialize(context); await collection.InsertOneAsync(document); } } } 

The collection’s contents should look like this:

> db.mydata.find() { "_id" : ObjectId("5513306a2dfd32ffd580e323"), "x" : 1.0 } { "_id" : ObjectId("5513306c2dfd32ffd580e324"), "x" : 2.0 } { "_id" : ObjectId("5513306e2dfd32ffd580e325"), "x" : 3.0 } { "_id" : ObjectId("551330712dfd32ffd580e326"), "x" : 4.0 } 
On this page