Insert Data into MongoDB
Overview
In this guide, you will insert data into MongoDB.
Time required: 15 minutes
What You'll Need
A connection string to your MongoDB deployment.
Sample datasets loaded into your cluster.
Procedure
Connect to your MongoDB instance.
Create a class that resembles a document from your collection.
The following class lists all the field names and types that your document will have.
1 // class that maps to the fields of a document in the sample_guides.comets collection
2 class Comet {
3 public ObjectId Id { get; set; }
4 public string Name { get; set; }
5 public string OfficialName { get; set; }
6 public double OrbitalPeriod { get; set; }
7 public double Radius { get; set; }
8 public double Mass { get; set; }
9 }
Automap your class to the documents fields.
In C#, you map fields to class properties, which are
uppercase by convention. However, you should insert the
data with camel case fields. To make the driver
automatically convert the fields from uppercase to camel
case, create a ConventionPack
and register the naming
convention for CamelCase
.
1 // instruct the driver to camelCase the fields in MongoDB 2 var pack = new ConventionPack { new CamelCaseElementNameConvention() }; 3 ConventionRegistry.Register("elementNameConvention", pack, x => true);
Verify your connection code.
Tip
The following is an outline with the minimum code necessary to connect to MongoDB. You'll make additions over the next few steps to insert data.
At line 6, replace the URI string with your own Atlas connection string.
1 using MongoDB.Bson;
2 using MongoDB.Bson.Serialization.Conventions;
3 using MongoDB.Driver;
4
5 // Replace the uri string with your MongoDB deployment's connection string.
6 var uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
7
8 // instruct the driver to camelCase the fields in MongoDB
9 var pack = new ConventionPack { new CamelCaseElementNameConvention() };
10 ConventionRegistry.Register("elementNameConvention", pack, x => true);
11
12 var client = new MongoClient(uri);
13
14 // database and colletion code goes here
15 // insert code goes here
16 // display the results of your operation
17
18 // class that maps to the fields of a document in the sample_guides.comets collection
19 class Comet {
20 public ObjectId Id { get; set; }
21 public string Name { get; set; }
22 public string OfficialName { get; set; }
23 public double OrbitalPeriod { get; set; }
24 public double Radius { get; set; }
25 public double Mass { get; set; }
26 }
Tip
The following is an outline with the minimum code necessary to connect to MongoDB. You'll make additions over the next few steps to insert data.
At line 13, replace the URI string with your own Atlas connection string.
1 import ( 2 "context" 3 "fmt" 4 "log" 5 "os" 6 7 "go.mongodb.org/mongo-driver/bson" 8 "go.mongodb.org/mongo-driver/mongo" 9 "go.mongodb.org/mongo-driver/mongo/options" 10 ) 11 12 func main() { 13 uri := "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority" 14 15 client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) 16 if err != nil { 17 panic(err) 18 } 19 defer func() { 20 if err = client.Disconnect(context.TODO()); err != nil { 21 panic(err) 22 } 23 }() 24 25 // database and colletion code goes here 26 // insert code goes here 27 // display the results of your operation 28 }
Tip
The following is an outline with the minimum code necessary to connect to MongoDB. You'll make additions over the next few steps to insert data.
At line 15, replace the URI string with your own Atlas connection string.
1 import com.mongodb.client.MongoClient; 2 import com.mongodb.client.MongoClients; 3 import com.mongodb.client.MongoCollection; 4 import com.mongodb.client.MongoDatabase; 5 import com.mongodb.client.result.InsertManyResult; 6 7 import org.bson.Document; 8 import org.bson.types.ObjectId; 9 10 import java.util.List; 11 import java.util.ArrayList; 12 13 public class CrudInsert { 14 public static void main(String[] args) { 15 String uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"; 16 17 try (MongoClient mongoClient = MongoClients.create(uri)) { 18 // database and collection code goes here 19 // insert code goes here 20 // display the results of your operation 21 } 22 } 23 }
Tip
The following is an outline with the minimum code necessary to connect to MongoDB. You'll make additions over the next few steps to insert data.
At line 4, replace the URI string with your own Atlas connection string.
1 const { MongoClient } = require("mongodb"); 2 // Replace the uri string with your MongoDB deployment's connection string. 3 const uri = 4 "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"; 5 const client = new MongoClient(uri); 6 async function run() { 7 try { 8 await client.connect(); 9 // database and collection code goes here 10 // insert code goes here 11 // display the results of your operation 12 } finally { 13 // Ensures that the client will close when you finish/error 14 await client.close(); 15 } 16 } 17 run().catch(console.dir);
Tip
The following is an outline with the minimum code necessary to connect to MongoDB. You'll make additions over the next few steps to insert data.
At line 4, replace the URI string with your own Atlas connection string.
1 from pymongo import MongoClient 2 3 # Replace the uri string with your MongoDB deployment's connection string. 4 uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority" 5 6 client = MongoClient(uri) 7 8 # database and collection code goes here 9 # insert code goes here 10 # display the results of your operation 11 12 # Close the connection to MongoDB when you're done. 13 client.close()
Tip
mongodb+srv
Make sure you've installed PyMongo with the srv
option.
python3 -m pip install "pymongo[srv]"
Get the database and collection.
Switch to the database and collection you want to work with. In
this case you will be using the sample_guides
database and
comets
collection.
// database and collection code goes here
var db = client.GetDatabase("sample_guides");
var coll = db.GetCollection<Comet>("comets");
1 // database and colletion code goes here 2 db := client.Database("sample_guides") 3 coll := db.Collection("comets")
1 // database and collection code goes here 2 MongoDatabase db = mongoClient.getDatabase("sample_guides"); 3 MongoCollection<Document> coll = db.getCollection("comets");
// database and collection code goes here const db = client.db("sample_guides"); const coll = db.collection("comets");
# database and collection code goes here db = client.sample_guides coll = db.comets
Insert documents into the comets
collection.
Create and insert three new documents for the comets
collection. Each document consists of the following
information about the comet:
The name
The official name
The orbital period in years
The radius in miles
The mass in kilograms
// insert code goes here
var comets = new [] {
new Comet {
Name = "Halley's Comet",
OfficialName = "1P/Halley",
OrbitalPeriod = 75,
Radius = 3.4175,
Mass = 2.2e14
},
new Comet {
Name = "Wild2",
OfficialName = "81P/Wild",
OrbitalPeriod = 6.41,
Radius = 1.5534,
Mass = 2.3e13
},
new Comet {
Name = "Comet Hyakutake",
OfficialName = "C/1996 B2",
OrbitalPeriod = 17000,
Radius = 0.77671,
Mass = 8.8e12
}
};
coll.InsertMany(comets);
1 // insert code goes here 2 docs := []interface{}{ 3 bson.D{{"name", "Halley's Comet"}, {"officialName", "1P/Halley"}, {"orbitalPeriod", 75}, {"radius", 3.4175}, {"mass", 2.2e14}}, 4 bson.D{{"name", "Wild2"}, {"officialName", "81P/Wild"}, {"orbitalPeriod", 6.41}, {"radius", 1.5534}, {"mass", 2.3e13}}, 5 bson.D{{"name", "Comet Hyakutake"}, {"officialName", "C/1996 B2"}, {"orbitalPeriod", 17000}, {"radius", 0.77671}, {"mass", 8.8e12}}, 6 } 7 8 result, err := coll.InsertMany(context.TODO(), docs) 9 if err != nil { 10 panic(err) 11 }
1 // insert code goes here 2 List<Document> documents = new ArrayList<>(); 3 4 Document doc1 = new Document("name", "Halley's Comet").append("officialName", "1P/Halley").append("orbitalPeriod", 75).append("radius", 3.4175).append("mass", 2.2e14); 5 Document doc2 = new Document("name", "Wild2").append("officialName", "81P/Wild").append("orbitalPeriod", 6.41).append("radius", 1.5534).append("mass", 2.3e13); 6 Document doc3 = new Document("name", "Comet Hyakutake").append("officialName", "C/1996 B2").append("orbitalPeriod", 17000).append("radius", 0.77671).append("mass", 8.8e12); 7 8 documents.add(doc1); 9 documents.add(doc2); 10 documents.add(doc3); 11 12 InsertManyResult result = coll.insertMany(documents);
// insert code goes here const docs = [ {name: "Halley's Comet", officialName: "1P/Halley", orbitalPeriod: 75, radius: 3.4175, mass: 2.2e14}, {name: "Wild2", officialName: "81P/Wild", orbitalPeriod: 6.41, radius: 1.5534, mass: 2.3e13}, {name: "Comet Hyakutake", officialName: "C/1996 B2", orbitalPeriod: 17000, radius: 0.77671, mass: 8.8e12} ]; const result = await coll.insertMany(docs);
# insert code goes here docs = [ {"name": "Halley's Comet", "officialName": "1P/Halley", "orbitalPeriod": 75, "radius": 3.4175, "mass": 2.2e14}, {"name": "Wild2", "officialName": "81P/Wild", "orbitalPeriod": 6.41, "radius": 1.5534, "mass": 2.3e13}, {"name": "Comet Hyakutake", "officialName": "C/1996 B2", "orbitalPeriod": 17000, "radius": 0.77671, "mass": 8.8e12}, ] result = coll.insert_many(docs)
Tip
If you omit the _id
field, the driver
automatically generates a unique ObjectId
value for the
_id
field.
Display your results.
Many write operations in MongoDB return a result object that contains information about the operation.
For insert operations, the C# driver automatically creates the
_id
of documents that are being inserted. Here, you
access this property from the original array and print them.
// display the results of your operation
foreach (var comet in comets) {
Console.WriteLine(comet.Id);
}
For insert operations, the result object will contain the
_id
of documents the driver successfully inserted. Here,
you access this property and print them.
1 // display the results of your operation 2 for _, id := range result.InsertedIDs { 3 fmt.Printf("\t%s\n", id) 4 }
For insert operations, the result object will contain the
_id
of documents the driver successfully inserted. Here,
you access this property and print them.
1 // display the results of your operation 2 result.getInsertedIds().values().forEach(doc -> System.out.println(doc.asObjectId().getValue()));
For insert operations, the result object will contain the
_id
of documents the driver successfully inserted. Here,
you access this property and print them.
// display the results of your operation console.log(result.insertedIds);
For insert operations, the result object will contain the
_id
of documents the driver successfully inserted. Here,
you access this property and print them.
# display the results of your operation print(result.inserted_ids)
Check your results.
Here is the complete code followed by sample output.
Note
Your ObjectId
values will differ from those shown.
1 using MongoDB.Bson;
2 using MongoDB.Bson.Serialization.Conventions;
3 using MongoDB.Driver;
4
5 // Replace the uri string with your MongoDB deployment's connection string.
6 var uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
7
8 // instruct the driver to camelCase the fields in MongoDB
9 var pack = new ConventionPack { new CamelCaseElementNameConvention() };
10 ConventionRegistry.Register("elementNameConvention", pack, x => true);
11
12 var client = new MongoClient(uri);
13
14 // database and colletion code goes here
15 var db = client.GetDatabase("sample_guides");
16 var coll = db.GetCollection<Comet>("comets");
17
18 // insert code goes here
19 var comets = new [] {
20 new Comet {
21 Name = "Halley's Comet",
22 OfficialName = "1P/Halley",
23 OrbitalPeriod = 75,
24 Radius = 3.4175,
25 Mass = 2.2e14
26 },
27 new Comet {
28 Name = "Wild2",
29 OfficialName = "81P/Wild",
30 OrbitalPeriod = 6.41,
31 Radius = 1.5534,
32 Mass = 2.3e13
33 },
34 new Comet {
35 Name = "Comet Hyakutake",
36 OfficialName = "C/1996 B2",
37 OrbitalPeriod = 17000,
38 Radius = 0.77671,
39 Mass = 8.8e12
40 }
41 };
42
43 coll.InsertMany(comets);
44
45 // display the results of your operation
46 foreach (var comet in comets) {
47 Console.WriteLine(comet.Id);
48 }
49
50 // class that maps to the fields of a document in the sample_guides.comets collection
51 class Comet {
52 public ObjectId Id { get; set; }
53 public string Name { get; set; }
54 public string OfficialName { get; set; }
55 public double OrbitalPeriod { get; set; }
56 public double Radius { get; set; }
57 public double Mass { get; set; }
58 }
625604fbd301606fd9998b14 625604fbd301606fd9998b15 625604fbd301606fd9998b16
1 import ( 2 "context" 3 "fmt" 4 "log" 5 "os" 6 7 "go.mongodb.org/mongo-driver/bson" 8 "go.mongodb.org/mongo-driver/mongo" 9 "go.mongodb.org/mongo-driver/mongo/options" 10 ) 11 12 func main() { 13 uri := "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority" 14 15 client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) 16 if err != nil { 17 panic(err) 18 } 19 defer func() { 20 if err = client.Disconnect(context.TODO()); err != nil { 21 panic(err) 22 } 23 }() 24 25 // database and colletion code goes here 26 db := client.Database("sample_guides") 27 coll := db.Collection("comets") 28 29 // insert code goes here 30 docs := []interface{}{ 31 bson.D{{"name", "Halley's Comet"}, {"officialName", "1P/Halley"}, {"orbitalPeriod", 75}, {"radius", 3.4175}, {"mass", 2.2e14}}, 32 bson.D{{"name", "Wild2"}, {"officialName", "81P/Wild"}, {"orbitalPeriod", 6.41}, {"radius", 1.5534}, {"mass", 2.3e13}}, 33 bson.D{{"name", "Comet Hyakutake"}, {"officialName", "C/1996 B2"}, {"orbitalPeriod", 17000}, {"radius", 0.77671}, {"mass", 8.8e12}}, 34 } 35 36 result, err := coll.InsertMany(context.TODO(), docs) 37 if err != nil { 38 panic(err) 39 } 40 41 // display the results of your operation 42 for _, id := range result.InsertedIDs { 43 fmt.Printf("\t%s\n", id) 44 } 45 }
ObjectID("624cf31b350635c487d55215") ObjectID("624cf31b350635c487d55216") ObjectID("624cf31b350635c487d55217")
1 import com.mongodb.client.MongoClient; 2 import com.mongodb.client.MongoClients; 3 import com.mongodb.client.MongoCollection; 4 import com.mongodb.client.MongoDatabase; 5 import com.mongodb.client.result.InsertManyResult; 6 7 import org.bson.Document; 8 9 import java.util.List; 10 import java.util.ArrayList; 11 12 public class CrudInsert { 13 public static void main(String[] args) { 14 String uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"; 15 16 try (MongoClient mongoClient = MongoClients.create(uri)) { 17 // database and collection code goes here 18 MongoDatabase db = mongoClient.getDatabase("sample_guides"); 19 MongoCollection<Document> coll = db.getCollection("comets"); 20 21 // insert code goes here 22 List<Document> documents = new ArrayList<>(); 23 24 Document doc1 = new Document("name", "Halley's Comet").append("officialName", "1P/Halley").append("orbitalPeriod", 75).append("radius", 3.4175).append("mass", 2.2e14); 25 Document doc2 = new Document("name", "Wild2").append("officialName", "81P/Wild").append("orbitalPeriod", 6.41).append("radius", 1.5534).append("mass", 2.3e13); 26 Document doc3 = new Document("name", "Comet Hyakutake").append("officialName", "C/1996 B2").append("orbitalPeriod", 17000).append("radius", 0.77671).append("mass", 8.8e12); 27 28 documents.add(doc1); 29 documents.add(doc2); 30 documents.add(doc3); 31 32 InsertManyResult result = coll.insertMany(documents); 33 34 // display the results of your operation 35 result.getInsertedIds().values().forEach(doc -> System.out.println(doc.asObjectId().getValue())); 36 } 37 } 38 }
625716fc5749232edfb4b2d7 625716fc5749232edfb4b2d8 625716fc5749232edfb4b2d9
1 const { MongoClient } = require("mongodb"); 2 // Replace the uri string with your MongoDB deployment's connection string. 3 const uri = 4 "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"; 5 6 const client = new MongoClient(uri); 7 8 async function run() { 9 try { 10 await client.connect(); 11 // database and collection code goes here 12 const db = client.db("sample_guides"); 13 const coll = db.collection("comets"); 14 15 // insert code goes here 16 const docs = [ 17 {name: "Halley's Comet", officialName: "1P/Halley", orbitalPeriod: 75, radius: 3.4175, mass: 2.2e14}, 18 {name: "Wild2", officialName: "81P/Wild", orbitalPeriod: 6.41, radius: 1.5534, mass: 2.3e13}, 19 {name: "Comet Hyakutake", officialName: "C/1996 B2", orbitalPeriod: 17000, radius: 0.77671, mass: 8.8e12} 20 ]; 21 22 const result = await coll.insertMany(docs); 23 24 // display the results of your operation 25 console.log(result.insertedIds); 26 27 } finally { 28 // Ensures that the client will close when you finish/error 29 await client.close(); 30 } 31 } 32 run().catch(console.dir);
{ '0': 624d06994e68f44afe8c0da6, '1': 624d06994e68f44afe8c0da7, '2': 624d06994e68f44afe8c0da8 }
1 from pymongo import MongoClient 2 3 # Replace the uri string with your MongoDB deployment's connection string. 4 uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority" 5 6 client = MongoClient(uri) 7 8 # database and collection code goes here 9 db = client.sample_guides 10 coll = db.comets 11 12 coll.drop() 13 14 # insert code goes here 15 docs = [ 16 {"name": "Halley's Comet", "officialName": "1P/Halley", "orbitalPeriod": 75, "radius": 3.4175, "mass": 2.2e14}, 17 {"name": "Wild2", "officialName": "81P/Wild", "orbitalPeriod": 6.41, "radius": 1.5534, "mass": 2.3e13}, 18 {"name": "Comet Hyakutake", "officialName": "C/1996 B2", "orbitalPeriod": 17000, "radius": 0.77671, "mass": 8.8e12}, 19 ] 20 21 result = coll.insert_many(docs) 22 23 # display the results of your operation 24 print(result.inserted_ids) 25 26 # Close the connection to MongoDB when you're done. 27 client.close()
[ObjectId('624d078756f4582197aad408'), ObjectId('624d078756f4582197aad409'), ObjectId('624d078756f4582197aad40a')]
Summary
If you have completed this guide, you have inserted data into MongoDB.
In the next guide, you will learn how to update a field in a document.
See Also
See the following resources for more in-depth information about the concepts presented here:
The MongoDB C# Driver documentation
The MongoDB Go Driver documentation
The MongoDB Java(Sync) Driver documentation
The MongoDB Node.js Driver documentation
The PyMongo documentation
Specify which documents to update and how to update them in MongoDB.