MongoDB에서 데이터 읽기
개요
이 가이드에서는 MongoDB에서 데이터를 조회하는 방법을 알아봅니다.
소요 시간: 10분
준비물
절차
MongoDB 인스턴스에 연결합니다.
팁
다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것이다. 다음 몇몇 단계에서는 데이터를 읽기 위해 추가 작업을 수행합니다.
5번째 줄에서 URI 문자열을 자체 Atlas 연결 문자열로 대체합니다.
1 using MongoDB.Bson;
2 using MongoDB.Driver;
3
4 // Replace the uri string with your MongoDB deployment's connection string.
5 var uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
6
7 var client = new MongoClient(uri);
8
9 // database and collection code goes here
10 // find code goes here
11 // iterate code goes here
12
13
14
팁
다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것이다. 다음 몇몇 단계에서는 데이터를 읽기 위해 추가 작업을 수행합니다.
11줄에서 URI string 을 자체 Atlas 연결 string 로 바꿉니다.
1 package main 2 3 import ( 4 "context" 5 6 "go.mongodb.org/mongo-driver/mongo" 7 "go.mongodb.org/mongo-driver/mongo/options" 8 ) 9 10 func main() { 11 uri := "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority" 12 13 client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) 14 if err != nil { 15 panic(err) 16 } 17 18 defer func() { 19 if err = client.Disconnect(context.TODO()); err != nil { 20 panic(err) 21 } 22 }() 23 24 // database and colletion code goes here 25 // find code goes here 26 // iterate code goes here 27 }
팁
다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것이다. 다음 몇몇 단계에서는 데이터를 읽기 위해 추가 작업을 수행합니다.
8줄에서 URI string 을 자체 Atlas 연결 string 로 바꿉니다.
1 import com.mongodb.client.*; 2 import com.mongodb.client.model.Filters.*; 3 import org.bson.Document; 4 import org.bson.conversions.Bson; 5 6 public class CrudRead { 7 public static void main(String[] args) { 8 String uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"; 9 10 try (MongoClient mongoClient = MongoClients.create(uri)) { 11 // database and collection code goes here 12 // find code goes here 13 // iterate code goes here 14 } 15 } 16 }
팁
다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것이다. 다음 몇몇 단계에서는 데이터를 읽기 위해 추가 작업을 수행합니다.
4번째 줄에서 URI 문자열을 자체 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 // find code goes here 11 // iterate code goes here 12 } finally { 13 // Ensures that the client will close when you finish/error 14 await client.close(); 15 } 16 } 17 run().catch(console.dir);
팁
다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것이다. 다음 몇몇 단계에서는 데이터를 읽기 위해 추가 작업을 수행합니다.
4번째 줄에서 URI 문자열을 자체 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 # find code goes here 10 # iterate code goes here 11 12 # Close the connection to MongoDB when you're done. 13 client.close()
팁
mongodb+srv
srv
옵션을 사용하여 PyMongo 를 설치했는지 확인합니다.
python3 -m pip install "pymongo[srv]"
이 코드 블록에는 연결 URI를 사용자의 URI으로 바꿀 수 있는 주석이 있습니다. URI 문자열을 Atlas 연결 문자열로 바꿔야 합니다.
데이터베이스와 collection을 가져옵니다.
쿼리하려는 데이터베이스 및 컬렉션으로 전환합니다. 이 경우에는 sample_guides
데이터베이스와 planets
컬렉션을 사용합니다.
// database and collection code goes here
var db = client.GetDatabase("sample_guides");
var coll = db.GetCollection<BsonDocument>("planets");
1 // database and colletion code goes here 2 db := client.Database("sample_guides") 3 coll := db.Collection("planets")
1 // database and collection code goes here 2 MongoDatabase db = mongoClient.getDatabase("sample_guides"); 3 MongoCollection<Document> coll = db.getCollection("planets");
// database and collection code goes here const db = client.db("sample_guides"); const coll = db.collection("planets");
# database and collection code goes here db = client.sample_guides coll = db.planets
컬렉션 의 모든 문서를 planets
조회합니다.
// find code goes here
var cursor = coll.AsQueryable();
Find()
메서드를 사용하여 모든 문서를 조회합니다. 다른 가이드에서 동일한 방법을 사용하여 특정 기준과 일치하는 문서를 조회하는 방법을 배우게 됩니다.
팁
모든 문서를 일치시키려면 빈 bson.D{}
이(가) 필요합니다.
1 // find code goes here 2 cursor, err := coll.Find(context.TODO(), bson.D{}) 3 if err != nil { 4 panic(err) 5 }
find()
메서드를 사용하여 모든 문서를 조회합니다. 다른 가이드에서 동일한 방법을 사용하여 특정 기준과 일치하는 문서를 조회하는 방법을 배우게 됩니다.
1 // find code goes here 2 MongoCursor<Document> cursor = coll.find().iterator();
find()
메서드를 사용하여 모든 문서를 조회합니다. 다른 가이드에서 동일한 방법을 사용하여 특정 기준과 일치하는 문서를 조회하는 방법을 배우게 됩니다.
// find code goes here const cursor = coll.find();
find()
메서드를 사용하여 모든 문서를 조회합니다. 다른 가이드에서 동일한 방법을 사용하여 특정 기준과 일치하는 문서를 조회하는 방법을 배우게 됩니다.
# find code goes here cursor = coll.find()
결과를 반복합니다.
// iterate code goes here
foreach (var document in cursor.ToEnumerable())
{
Console.WriteLine(document);
}
1 // iterate code goes here 2 for cursor.Next(context.TODO()) { 3 var result bson.M 4 if err := cursor.Decode(&result); err != nil { 5 panic(err) 6 } 7 fmt.Println(result) 8 } 9 if err := cursor.Err(); err != nil { 10 panic(err) 11 }
1 // iterate code goes here 2 try { 3 while (cursor.hasNext()) { 4 System.out.println(cursor.next().toJson()); 5 } 6 } finally { 7 cursor.close(); 8 }
결과를 반복하여 콘솔에 인쇄합니다. 이와 같은 작업은 기본적으로 MongoDB Node.js 드라이버에서 비동기식 이며 이는 Node.js 런타임이 실행이 완료될 때까지 기다리는 동안 다른 작업을 차단하지 않는다는 의미입니다.
작업을 단순화하려면 await
키워드를 지정하여 런타임이 작업을 기다릴 수 있도록 합니다. 이 작업은 콜백을 지정하거나 프로미스를 연결하는 것보다 간편합니다.
자세한 내용은 Promise 및 콜백 가이드 를 참조하세요.
// iterate code goes here await cursor.forEach(console.log);
# iterate code goes here for doc in cursor: print(doc)
결과를 확인합니다.
다음은 전체 코드와 샘플 출력입니다.
참고
ObjectId
값은 표시된 값과 다를 수 있습니다.
다음은 전체 코드와 샘플 출력입니다.
1 using MongoDB.Bson;
2 using MongoDB.Driver;
3
4 // Replace the uri string with your MongoDB deployment's connection string.
5 var uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
6
7 var client = new MongoClient(uri);
8
9 // database and collection code goes here
10 var db = client.GetDatabase("sample_guides");
11 var coll = db.GetCollection<BsonDocument>("planets");
12 // find code goes here
13 var cursor = coll.AsQueryable();
14 // iterate code goes here
15 foreach (var document in cursor)
16 {
17 Console.WriteLine(document);
18 }
19
20
{ '_id': ObjectId('621ff30d2a3e781873fcb65c'), 'name': 'Mercury', 'orderFromSun': 1, 'hasRings': False, 'mainAtmosphere': [], 'surfaceTemperatureC': {'min': -173, 'max': 427, 'mean': 67} }, ...
다음은 전체 코드와 샘플 출력입니다.
1 package main 2 3 import ( 4 "context" 5 "fmt" 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 20 defer func() { 21 if err = client.Disconnect(context.TODO()); err != nil { 22 panic(err) 23 } 24 }() 25 26 // database and colletion code goes here 27 db := client.Database("sample_guides") 28 coll := db.Collection("planets") 29 30 // find code goes here 31 cursor, err := coll.Find(context.TODO(), bson.D{}) 32 if err != nil { 33 panic(err) 34 } 35 36 // iterate code goes here 37 for cursor.Next(context.TODO()) { 38 var result bson.M 39 if err := cursor.Decode(&result); err != nil { 40 panic(err) 41 } 42 fmt.Println(result) 43 } 44 if err := cursor.Err(); err != nil { 45 panic(err) 46 } 47 48 }
map[_id:ObjectID("621ff30d2a3e781873fcb65c") hasRings:false mainAtmosphere:[] name:Mercury orderFromSun:1 surfaceTemperatureC:map[max:427 mean:67 min:-173]] ...
다음은 전체 코드와 샘플 출력입니다.
1 import com.mongodb.client.*; 2 import com.mongodb.client.model.Filters.*; 3 import org.bson.Document; 4 import org.bson.conversions.Bson; 5 6 public class CrudRead { 7 public static void main(String[] args) { 8 String uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"; 9 10 try (MongoClient mongoClient = MongoClients.create(uri)) { 11 // database and collection code goes here 12 MongoDatabase db = mongoClient.getDatabase("sample_guides"); 13 MongoCollection<Document> coll = db.getCollection("planets"); 14 15 // find code goes here 16 MongoCursor<Document> cursor = coll.find().iterator(); 17 18 // iterate code goes here 19 try { 20 while (cursor.hasNext()) { 21 System.out.println(cursor.next().toJson()); 22 } 23 } finally { 24 cursor.close(); 25 } 26 } 27 } 28 }
{"_id": {"$oid": "621ff30d2a3e781873fcb65c"}, "name": "Mercury", "orderFromSun": 1, "hasRings": false, "mainAtmosphere": [], "surfaceTemperatureC": {"min": -173, "max": 427, "mean": 67}} ...
다음은 전체 코드와 샘플 출력입니다.
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 const db = client.db("sample_guides"); 11 const coll = db.collection("planets"); 12 13 // find code goes here 14 const cursor = coll.find(); 15 16 // iterate code goes here 17 await cursor.forEach(console.log); 18 } finally { 19 // Ensures that the client will close when you finish/error 20 await client.close(); 21 } 22 } 23 run().catch(console.dir);
{ '_id': ObjectId('621ff30d2a3e781873fcb65c'), 'name': 'Mercury', 'orderFromSun': 1, 'hasRings': False, 'mainAtmosphere': [], 'surfaceTemperatureC': {'min': -173, 'max': 427, 'mean': 67} }, ...
다음은 전체 코드와 샘플 출력입니다.
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.planets 11 # find code goes here 12 cursor = coll.find({"hasRings": True}) 13 # iterate code goes here 14 for doc in cursor: 15 print(doc) 16 17 # Close the connection to MongoDB when you're done. 18 client.close()
{ '_id': ObjectId('621ff30d2a3e781873fcb65c'), 'name': 'Mercury', 'orderFromSun': 1, 'hasRings': False, 'mainAtmosphere': [], 'surfaceTemperatureC': {'min': -173, 'max': 427, 'mean': 67} }, ...
요약
가이드의 절차를 성공적으로 완료했다면 MongoDB에서 데이터를 조회했을 것입니다.
다음 가이드에서는 기준을 사용하여 MongoDB에서 데이터를 검색하는 방법에 대해 알아봅니다.
다음도 참조하세요.
다른 CRUD 가이드의 경우: