AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

빠른 참조

이 페이지에서는 고 (Go) 운전자 의 여러 MongoDB 작업에 대한 운전자 구문을 보여 주고 관련 참조 및 API 문서에 대한 링크를 제공합니다.

작업
구문
err = coll.FindOne(context.TODO(), bson.D{{"firstName", Mike}}).Decode(&result)
[{firstName Mike}, {lastName Smith} ...]
cursor, err := coll.Find(context.TODO(), bson.D{{"age", bson.D{{"$gte", 46}}}})
[{firstName Kyle}, {age 51}, ... ]
[{firstName Omar}, {age 47}, ... ]
result, err := coll.InsertOne(
context.TODO(),
bson.D{
{"firstName", "Aliya"},
{"lastName", "Sanders"}
}
)

여러 문서를 삽입합니다.

API 문서
문서 삽입 가이드

docs := []any {
bson.D{{"firstName", "Erik"}, {"age", 27}},
bson.D{{"firstName", "Mohammad"}, {"lastName", "Ahmad"}, {"age", 10}},
bson.D{{"firstName", "Todd"}},
bson.D{{"firstName", "Juan"}, {"lastName", "Pablo"}}
}
result, err := coll.InsertMany(context.TODO(), docs)
result, err := coll.UpdateOne(
context.TODO(),
bson.D{{"firstName", "Erik"}},
bson.D{{"$set", bson.D{{"age", 28}}}}
)
fmt.Printf("Number of modified documents: %d\n", result.ModifiedCount)
Number of modified documents: 1

여러 문서 업데이트하기

API 문서
문서 업데이트 가이드

result, err := coll.UpdateMany(
context.TODO(),
bson.D{{"age", bson.D{{"$gte", 65}}}},
bson.D{{"$set", bson.D{{"classification", "senior"}}}}
)
fmt.Printf("Number of modified documents: %d\n", result.ModifiedCount)
Number of modified documents: 4

문서 배열 업데이트

API 문서
Update Arrays Guide

result, err := coll.UpdateMany(
context.TODO(),
bson.D{},
bson.D{{"$push", bson.D{{"hobbies", "painting"}}}}
)
[{firstName Xiao}, {hobbies ["painting"]}, ... ]
[{firstName Omar}, {hobbies ["kayaking", "painting"]}, ... ]
...
result, err := coll.ReplaceOne(
context.TODO(),
bson.D{{"firstName", "Mick"}, {"lastName", "Salazar"}},
bson.D{{"firstName", "Michael"}, {"lastName", "Salazar Jr."}}
)
[{{firstName Michael}, {lastName Salazar Jr.} }]
result, err := coll.DeleteOne(
context.TODO(),
bson.D{{"firstName", "Xiao"}}
)
results, err := coll.DeleteMany(
context.TODO(),
bson.D{{"age", bson.D{{"$lte", 12}}}}
)
models := []mongo.WriteModel{
mongo.NewInsertOneModel().SetDocument(bson.D{{"firstName", "John"}, {"age", 5}}),
mongo.NewUpdateOneModel().SetFilter(bson.D{{"firstName", "Juan"}}).
SetUpdate(bson.D{{"$set", bson.D{{"age", 12}}}}),
}
opts := options.BulkWrite().SetOrdered(true)
results, err := coll.BulkWrite(context.TODO(), models, opts)
[{firstName John}, {age 5} ... ]
[{firstName Juan}, {age 12} ... ]

데이터 변경 사항 모니터링

API 문서
Change Streams 가이드

pipeline := mongo.Pipeline{bson.D{{"$match", bson.D{{"operationType", "insert"}}}}}
cs, err := coll.Watch(context.TODO(), pipeline)

커서에서 반복적으로 데이터에 액세스

API 문서
문서 개별 조회 참조

cursor, err := coll.Find(context.TODO(), bson.D{})
for cursor.Next(context.TODO()) {
var result bson.D
if err := cursor.Decode(&result); err != nil {
log.Fatal(err)
}
fmt.Println(result)
}
[{firstName Doug} ... ]
[{firstName Erik} ...]
[{firstName Oleg} ...]
...

커서에서 배열로 데이터에 액세스

API 문서
모든 문서 조회 참조

cursor, err := coll.Find(context.TODO(), bson.D{})
var results []bson.D
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}
[{firstName Mike} ... ]
[{firstName Edgar} ...]
[{firstName Freddie} ...]
...
count, err := coll.CountDocuments(context.TODO(), bson.D{})
17

고유 필드 값 나열

API 문서
Distinct Values Guide

var results []string
err = coll.Distinct(context.TODO(), "firstName", bson.D{}).Decode(&results)
[Mike Xiao Sandy ...]

조회되는 문서 수 제한

API 문서
문서 참조 제한

cursor, err := coll.Find(context.TODO(), bson.D{}, options.Find().SetLimit(2))
[{firstName Xiao} ... ]
[{firstName Oleg} ...]

조회된 문서 건너뛰기

API 문서
문서 참조 건너뛰기

// the collection has 6 documents
cursor, err := coll.Find(context.TODO(), bson.D{}, options.Find().SetSkip(4))
[{firstName Sandy} ... ]
[{firstName Michael} ...]

Sort Retrieved Documents

API 문서
문서 정렬 참조

cursor, err := coll.Find(context.TODO(), bson.D{}, options.Find().SetSort(bson.D{{"age", 1}}))
[{firstName Dev} {age 5} ... ]
[{firstName Jose} {age 7} ... ]
[{firstName Om} {age 8} ... ]

결과의 프로젝트 문서 필드

API 문서
프로젝션 가이드

cursor, err := coll.Find(
context.TODO(),
bson.D{},
options.Find().SetProjection(
bson.D{{"age", 0}, {"_id",0}}
)
)
[{firstName Lester} {lastName Franklin}]
[{firstName Wendall} {lastName Griffin}]
...

인덱스 만들기

API 문서
Indexes Guide

model := mongo.IndexModel{Keys: bson.D{{"firstName", 1}, {"lastName", -1}}}
name, err := coll.Indexes().CreateOne(context.TODO(), model)
// Only searches on fields covered by text indexes
cursor, err := coll.Find(context.TODO(), bson.D{{"$text", bson.D{{"$search", "arts"}}}})
[{"firstName": "Emily" , "biography": "I am involved with arts and culture in my community."} ... ]
[{"firstName": "Juan" , "biography": "I attended the School of Arts for cello performance."} ... ]