Docs Menu
Docs Home
/ / /
C 드라이버
/

문서 업데이트

이 페이지의 내용

  • 개요
  • 샘플 데이터
  • 업데이트 작업
  • 하나의 문서 업데이트
  • 다수 문서 업데이트
  • 업데이트 작업 사용자 지정
  • 추가 정보
  • API 문서

이 가이드 에서는 C 운전자 를 사용하여 MongoDB 컬렉션 의 문서를 업데이트 하는 방법을 학습 수 있습니다. mongoc_collection_update_one() 함수를 호출하여 단일 문서 를 업데이트 하거나 mongoc_collection_update_many() 함수를 호출하여 여러 문서를 업데이트 할 수 있습니다.

이 가이드 의 예제에서는 Atlas 샘플 데이터 세트sample_restaurants 데이터베이스 에 있는 restaurants 컬렉션 을 사용합니다. 무료 MongoDB Atlas cluster 를 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 보려면 Atlas 시작하기 가이드 를 참조하세요.

다음 함수를 사용하여 MongoDB 에서 업데이트 작업을 수행할 수 있습니다.

  • mongoc_collection_update_one()검색 조건과 일치하는 첫 번째 문서가 업데이트됩니다.

  • mongoc_collection_update_many()검색 조건과 일치하는 모든 문서가 업데이트됩니다.

각 업데이트 함수는 다음 매개변수를 허용합니다.

  • Collection: 업데이트 할 컬렉션 을 지정합니다.

  • 쿼리 필터하다 문서: 업데이트 할 컬렉션 문서를 지정합니다. 쿼리 필터에 대한 자세한 내용은 MongoDB Server 매뉴얼의 필터 문서 쿼리 섹션을 참조하세요.

  • 문서 업데이트:업데이트 연산자 또는 수행할 업데이트 의 종류, 변경할 필드 및 값을 지정합니다. 업데이트 연산자 목록 및 사용법은 MongoDB Server 매뉴얼의 필드 업데이트 연산자 가이드 를 참조하세요.

  • 옵션 문서: 작업 또는 를 사용자 지정하는 옵션을 NULL 지정합니다.

  • 결과 위치: 작업 결과를 포함할 덮어쓸 수 있는 저장 에 대한 포인터 또는 NULL 을 지정합니다.

  • 오류 위치: 오류 값 또는 NULL 의 위치 를 지정합니다.

다음 예시 에서는 mongoc_collection_update_one() 함수를 사용하여 restaurants 컬렉션 에 있는 문서 의 name 값을 "Bagels N Buns" 에서 "2 Bagels 2 Buns" 로 업데이트 합니다.

bson_t *query = BCON_NEW ("name", BCON_UTF8 ("Bagels N Buns"));
bson_t *update = BCON_NEW ("$set", "{", "name", BCON_UTF8 ("2 Bagels 2 Buns"), "}");
bson_error_t error;
if (!mongoc_collection_update_one (collection, query, update, NULL, NULL, &error)) {
fprintf (stderr, "Update one operation failed: %s\n", error.message);
}
bson_destroy (query);
bson_destroy (update);

다음 예시 에서는 mongoc_collection_update_many() 함수를 사용하여 cuisine 값이 "Pizza"인 모든 문서를 업데이트 합니다. 업데이트 후 문서의 cuisine 값은 "Pasta"입니다.

bson_t *query = BCON_NEW ("cuisine", BCON_UTF8 ("Pizza"));
bson_t *update = BCON_NEW ("$set", "{", "cuisine", BCON_UTF8 ("Pasta"), "}");
bson_error_t error;
if (!mongoc_collection_update_many (collection, query, update, NULL, NULL, &error)) {
fprintf (stderr, "Update many operation failed: %s\n", error.message);
}
bson_destroy (query);
bson_destroy (update);

옵션 값을 지정하는 BSON 문서 를 전달하여 mongoc_collection_update_one()mongoc_collection_update_many() 함수의 동작을 수정할 수 있습니다. 다음 표에서는 문서 에서 설정하다 수 있는 몇 가지 옵션을 설명합니다.

옵션
설명

bypassDocumentValidation

If set to true, allows the write operation to opt out of document-level validation.
Defaults to false.
Type: bool

writeConcern

Sets the write concern for the operation.
Defaults to the write concern of the namespace.
Type: mongoc_write_concern_t

collation

Specifies the kind of language collation to use when comparing text. For more information, see Collation in the MongoDB Server manual.
Type: bson_t

comment

A comment to attach to the operation. For more information, see the insert command fields guide in the MongoDB Server manual.
Type: bson_value_t

upsert

A comment to attach to the operation. For more information, see the insert command fields guide in the MongoDB Server manual.
Type: bson_value_t

다음 예시 에서는 mongoc_collection_update_many() 함수를 사용하여 borough 값이 "Manhattan"인 모든 문서를 찾습니다. 그런 다음 이러한 문서의 borough 값을 "Manhattan (north)" 로 업데이트합니다. upsert 옵션이 true 로 설정하다 되어 있기 때문에 쿼리 필터하다 가 기존 문서와 일치하지 않는 경우 C 운전자 는 새 문서 를 삽입합니다.

bson_t *query = BCON_NEW ("borough", BCON_UTF8 ("Manhattan"));
bson_t *update = BCON_NEW ("$set", "{", "borough", BCON_UTF8 ("Manhattan (north)"), "}");
bson_error_t error;
bson_t opts;
bson_init (&opts);
bson_append_bool (&opts, "upsert", -1, true);
if (!mongoc_collection_update_many (collection, query, update, &opts, NULL, &error)) {
fprintf (stderr, "Update many operation failed: %s\n", error.message);
}
bson_destroy (query);
bson_destroy (update);
bson_destroy (&opts);

쿼리 필터 만들기에 학습 보려면 쿼리 지정 가이드 를 참조하세요.

이 가이드 에서 설명하는 함수에 학습 보려면 다음 API 문서를 참조하세요.

돌아가기

바꾸기