Docs Menu
Docs Home
/ / /
Go
/

데이터 변경 사항 모니터링

Watch() 메서드를 사용하여 MongoCollection, MongoDatabase 또는 MongoClient 에서 change stream을 열 수 있습니다.

이 예시를 실행하는 방법에 대해 알아보려면 사용 예시를 읽어보세요.

다음 예제에서는 restaurants collection에서 change stream을 열고 삽입된 문서를 인쇄합니다.

coll := client.Database("sample_restaurants").Collection("restaurants")
pipeline := mongo.Pipeline{bson.D{{"$match", bson.D{{"operationType", "insert"}}}}}
cs, err := coll.Watch(context.TODO(), pipeline)
if err != nil {
panic(err)
}
defer cs.Close(context.TODO())
fmt.Println("Waiting For Change Events. Insert something in MongoDB!")
for cs.Next(context.TODO()) {
var event bson.M
if err := cs.Decode(&event); err != nil {
panic(err)
}
output, err := json.MarshalIndent(event["fullDocument"], "", " ")
if err != nil {
panic(err)
}
fmt.Printf("%s\n", output)
}
if err := cs.Err(); err != nil {
panic(err)
}

완전히 실행 가능한 예시를 확인합니다.

전체 예제를 실행한 후 다른 shell에서 문서 삽입 사용 예제를 실행합니다. 삽입 작업을 실행하면 다음과 같은 출력이 표시됩니다.

// results truncated
{
"_id": ...,
"name": "8282",
"cuisine": "Korean"
}

중요

작업을 마친 후에는 터미널을 닫아 이 사용 예시를 종료합니다.

변경 스트림을 열고 잠재적인 오류를 처리하는 방법에 대해 자세히 알아보려면 다음을 참조하세요.

  • 변경 스트림에 대한 기본 페이지

  • MongoDB 서버 매뉴얼 Change Streams 설명서

watch()

돌아가기

대량 작업 수행