Inserir dados no MongoDB
Visão geral
Neste guia, você inserirá dados no MongoDB.
Tempo necessário: 15 minutos
O que você precisa
Umastring de conexão para sua implantação do MongoDB .
Exemplos de conjuntos de dados carregados em seu cluster.
Procedimento
Conecte-se à sua instância do MongoDB.
Crie uma classe que se assemelhe a um documento da sua collection.
A classe a seguir lista todos os nomes e tipos de campo que seu documento terá.
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 }
Automatize sua classe para os campos dos documentos.
Em C#, você mapeia campos para propriedades de classe , que são maiúsculas por convenção. No entanto, você deve inserir os dados com campos de camel case. Para fazer com que o driver converta automaticamente os campos de maiúsculas para camel case, crie um ConventionPack
e registre a convenção de nomenclatura para 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);
Verifique seu código de conexão.
Dica
Veja a seguir um esboço com o código mínimo necessário para se conectar ao MongoDB. Você fará adições nas próximas etapas para inserir dados.
Na linha 6, substitua a string URI por sua própria string de conexão Atlas.
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 }
Dica
Veja a seguir um esboço com o código mínimo necessário para se conectar ao MongoDB. Você fará adições nas próximas etapas para inserir dados.
Na linha 13, substitua a string URI por sua própria string de conexão Atlas .
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 }
Dica
Veja a seguir um esboço com o código mínimo necessário para se conectar ao MongoDB. Você fará adições nas próximas etapas para inserir dados.
Na linha 15, substitua a string URI por sua própria string de conexão Atlas .
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 }
Dica
Veja a seguir um esboço com o código mínimo necessário para se conectar ao MongoDB. Você fará adições nas próximas etapas para inserir dados.
Na linha 4, substitua a string URI pela sua própria connection string do Atlas.
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);
Dica
Veja a seguir um esboço com o código mínimo necessário para se conectar ao MongoDB. Você fará adições nas próximas etapas para inserir dados.
Na linha 4, substitua a string URI pela sua própria connection string do Atlas.
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()
Dica
MongoDB+srv
Certifique-se de ter instalado o PyMongo com a opção srv
.
python3 -m pip install "pymongo[srv]"
Obtenha o banco de dados e a collection.
Mude para o banco de dados e a coleção com a qual você deseja trabalhar. Neste caso, você utilizará o banco de dados do sample_guides
e a coleção do comets
.
// 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
Insira documentos na comets
coleta.
Crie e insira três novos documentos para a collection comets
. Cada documento consiste nas seguintes informações sobre o cometa:
O nome
O nome oficial
O período orbital em anos
O raio em milhas
A massa em quilogramas
// 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)
Dica
Se omitir o campo _id
, o driver gera automaticamente um valor ObjectId
único para o campo _id
.
Exiba seus resultados.
Muitas operações de escrita no MongoDB retornam um objeto de resultado que contém informações sobre a operação.
Para operações de inserção, o driver C# cria automaticamente os _id
documentos que estão sendo inseridos. Aqui, você acessa esta propriedade a partir da matriz original e a imprime.
// display the results of your operation
foreach (var comet in comets) {
Console.WriteLine(comet.Id);
}
Para operações de inserção, o objeto de resultado conterá os _id
documentos inseridos com sucesso pelo acionador. Aqui, você acessa esta propriedade e a imprime.
1 // display the results of your operation 2 for _, id := range result.InsertedIDs { 3 fmt.Printf("\t%s\n", id) 4 }
Para operações de inserção, o objeto de resultado conterá os _id
documentos inseridos com sucesso pelo acionador. Aqui, você acessa esta propriedade e a imprime.
1 // display the results of your operation 2 result.getInsertedIds().values().forEach(doc -> System.out.println(doc.asObjectId().getValue()));
Para operações de inserção, o objeto de resultado conterá os _id
documentos inseridos com sucesso pelo acionador. Aqui, você acessa esta propriedade e a imprime.
// display the results of your operation console.log(result.insertedIds);
Para operações de inserção, o objeto de resultado conterá os _id
documentos inseridos com sucesso pelo acionador. Aqui, você acessa esta propriedade e a imprime.
# display the results of your operation print(result.inserted_ids)
Verifique seus resultados.
Aqui está o código completo seguido de saída de amostra.
Observação
Seus valores ObjectId
serão diferentes daqueles mostrados.
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')]
Resumo
Se você concluiu este guia, você inseriu dados no MongoDB.
No próximo guia, você aprenderá como atualizar um campo em um documento.
Veja também
Consulte os seguintes recursos para obter informações mais detalhadas sobre os conceitos apresentados aqui:
O driver MongoDB C# documentação
A documentação do driver Go do MongoDB
A documentação do driver MongoDB Java(Sync)
Documentação do driver Node.js do MongoDB
O PyMongo documentação
Especifique quais documentos atualizar e como atualizá-los no MongoDB.