문서 업데이트
개요
이 가이드 에서는 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()
함수의 동작을 수정할 수 있습니다. 다음 표에서는 문서 에서 설정하다 수 있는 몇 가지 옵션을 설명합니다.
옵션 | 설명 |
---|---|
| If set to true , allows the write operation to opt out of
document-level validation.Defaults to false .Type: bool |
| Sets the write concern for the operation. Defaults to the write concern of the namespace. Type: mongoc_write_concern_t |
| Specifies the kind of language collation to use when comparing
text. For more information, see Collation
in the MongoDB Server manual. Type: bson_t |
| 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 |
| 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 문서
이 가이드 에서 설명하는 함수에 학습 보려면 다음 API 문서를 참조하세요.