Docs Menu
Docs Home
/
가이드 시작

MongoDB에서 데이터 읽기

이 가이드에서는 MongoDB에서 데이터를 조회하는 방법을 알아봅니다.

소요 시간: 10분

  • 배포서버 에 대한 연결 string 입니다.MongoDB

  • 클러스터에 로드된 샘플 데이터 세트입니다.

  • 설치된 MongoDB 드라이버.

1

다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것이다. 다음 몇몇 단계에서는 데이터를 읽기 위해 추가 작업을 수행합니다.

5번째 줄에서 URI 문자열을 자체 Atlas 연결 문자열로 대체합니다.

CrudRead.cs
1using MongoDB.Bson;
2using MongoDB.Driver;
3
4// Replace the uri string with your MongoDB deployment's connection string.
5var uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
6
7var 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 로 바꿉니다.

crudRead.go
1package main
2
3import (
4 "context"
5
6 "go.mongodb.org/mongo-driver/mongo"
7 "go.mongodb.org/mongo-driver/mongo/options"
8)
9
10func 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 로 바꿉니다.

CrudRead.java
1import com.mongodb.client.*;
2import com.mongodb.client.model.Filters.*;
3import org.bson.Document;
4import org.bson.conversions.Bson;
5
6public 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 연결 문자열로 대체합니다.

crud-read.js
1const { MongoClient } = require("mongodb");
2// Replace the uri string with your MongoDB deployment's connection string.
3const uri =
4 "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
5const client = new MongoClient(uri);
6async 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}
17run().catch(console.dir);

다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것이다. 다음 몇몇 단계에서는 데이터를 읽기 위해 추가 작업을 수행합니다.

4번째 줄에서 URI 문자열을 자체 Atlas 연결 문자열로 대체합니다.

crud_read.py
1from pymongo import MongoClient
2
3# Replace the uri string with your MongoDB deployment's connection string.
4uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"
5
6client = 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.
13client.close()

mongodb+srv

srv 옵션을 사용하여 PyMongo 를 설치했는지 확인합니다.

python3 -m pip install "pymongo[srv]"

이 코드 블록에는 연결 URI를 사용자의 URI으로 바꿀 수 있는 주석이 있습니다. URI 문자열을 Atlas 연결 문자열로 바꿔야 합니다.

2

쿼리하려는 데이터베이스 및 컬렉션으로 전환합니다. 이 경우에는 sample_guides 데이터베이스와 planets 컬렉션을 사용합니다.

CrudRead.cs
// database and collection code goes here
var db = client.GetDatabase("sample_guides");
var coll = db.GetCollection<BsonDocument>("planets");
crudRead.go
1// database and colletion code goes here
2db := client.Database("sample_guides")
3coll := db.Collection("planets")
CrudRead.java
1// database and collection code goes here
2MongoDatabase db = mongoClient.getDatabase("sample_guides");
3MongoCollection<Document> coll = db.getCollection("planets");
crud-read.js
// database and collection code goes here
const db = client.db("sample_guides");
const coll = db.collection("planets");
crud_read.py
# database and collection code goes here
db = client.sample_guides
coll = db.planets
3
CrudRead.cs
// find code goes here
var cursor = coll.AsQueryable();

Find() 메서드를 사용하여 모든 문서를 조회합니다. 다른 가이드에서 동일한 방법을 사용하여 특정 기준과 일치하는 문서를 조회하는 방법을 배우게 됩니다.

모든 문서를 일치시키려면 빈 bson.D{}이(가) 필요합니다.

crudRead.go
1// find code goes here
2cursor, err := coll.Find(context.TODO(), bson.D{})
3if err != nil {
4 panic(err)
5}

find() 메서드를 사용하여 모든 문서를 조회합니다. 다른 가이드에서 동일한 방법을 사용하여 특정 기준과 일치하는 문서를 조회하는 방법을 배우게 됩니다.

CrudRead.java
1// find code goes here
2MongoCursor<Document> cursor = coll.find().iterator();

find() 메서드를 사용하여 모든 문서를 조회합니다. 다른 가이드에서 동일한 방법을 사용하여 특정 기준과 일치하는 문서를 조회하는 방법을 배우게 됩니다.

crud-read.js
// find code goes here
const cursor = coll.find();

find() 메서드를 사용하여 모든 문서를 조회합니다. 다른 가이드에서 동일한 방법을 사용하여 특정 기준과 일치하는 문서를 조회하는 방법을 배우게 됩니다.

crud_read.py
# find code goes here
cursor = coll.find()
4
CrudRead.cs
// iterate code goes here
foreach (var document in cursor.ToEnumerable())
{
Console.WriteLine(document);
}
crudRead.go
1// iterate code goes here
2for 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}
9if err := cursor.Err(); err != nil {
10 panic(err)
11}
CrudRead.java
1// iterate code goes here
2try {
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 및 콜백 가이드 를 참조하세요.

crud-read.js
// iterate code goes here
await cursor.forEach(console.log);
crud_read.py
# iterate code goes here
for doc in cursor:
print(doc)
5

다음은 전체 코드와 샘플 출력입니다.

참고

ObjectId 값은 표시된 값과 다를 수 있습니다.

다음은 전체 코드와 샘플 출력입니다.

CrudRead.cs
1using MongoDB.Bson;
2using MongoDB.Driver;
3
4// Replace the uri string with your MongoDB deployment's connection string.
5var uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
6
7var client = new MongoClient(uri);
8
9// database and collection code goes here
10var db = client.GetDatabase("sample_guides");
11var coll = db.GetCollection<BsonDocument>("planets");
12// find code goes here
13var cursor = coll.AsQueryable();
14// iterate code goes here
15foreach (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}
},
...

다음은 전체 코드와 샘플 출력입니다.

crudRead.go
1package main
2
3import (
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
12func 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]]
...

다음은 전체 코드와 샘플 출력입니다.

CrudRead.java
1import com.mongodb.client.*;
2import com.mongodb.client.model.Filters.*;
3import org.bson.Document;
4import org.bson.conversions.Bson;
5
6public 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}}
...

다음은 전체 코드와 샘플 출력입니다.

crud-read.js
1const { MongoClient } = require("mongodb");
2// Replace the uri string with your MongoDB deployment's connection string.
3const uri =
4 "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
5const client = new MongoClient(uri);
6async 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}
23run().catch(console.dir);
{
'_id': ObjectId('621ff30d2a3e781873fcb65c'),
'name': 'Mercury',
'orderFromSun': 1,
'hasRings': False,
'mainAtmosphere': [],
'surfaceTemperatureC': {'min': -173, 'max': 427, 'mean': 67}
},
...

다음은 전체 코드와 샘플 출력입니다.

crud_read.py
1from pymongo import MongoClient
2
3# Replace the uri string with your MongoDB deployment's connection string.
4uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"
5
6client = MongoClient(uri)
7
8# database and collection code goes here
9db = client.sample_guides
10coll = db.planets
11# find code goes here
12cursor = coll.find({"hasRings": True})
13# iterate code goes here
14for doc in cursor:
15 print(doc)
16
17# Close the connection to MongoDB when you're done.
18client.close()
{
'_id': ObjectId('621ff30d2a3e781873fcb65c'),
'name': 'Mercury',
'orderFromSun': 1,
'hasRings': False,
'mainAtmosphere': [],
'surfaceTemperatureC': {'min': -173, 'max': 427, 'mean': 67}
},
...

가이드의 절차를 성공적으로 완료했다면 MongoDB에서 데이터를 조회했을 것입니다.

다음 가이드에서는 기준을 사용하여 MongoDB에서 데이터를 검색하는 방법에 대해 알아봅니다.

다른 CRUD 가이드의 경우:

마지막으로
쿼리를 사용하여 MongoDB에서 데이터 읽기
15분

쿼리를 사용하여 MongoDB에서 검색할 문서를 지정할 수 있습니다.

시작 가이드
2장
CRUD
  • MongoDB 드라이버 추가
  • MongoDB에서 데이터 읽기
  • 쿼리를 사용하여 MongoDB에서 데이터 읽기
  • 연산자 및 복합 쿼리를 사용하여 데이터 읽기
  • MongoDB에 데이터 삽입
  • MongoDB에서 데이터 업데이트
  • MongoDB에서 데이터 삭제