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

MongoDB에 데이터 쓰기

이 페이지의 내용

  • 개요
  • 샘플 애플리케이션
  • insertOne
  • 여러 항목 삽입
  • UpdateOne
  • 다중 업데이트
  • deleteOne
  • 여러 항목 삭제
  • 대량 쓰기

이 페이지에서는 C 운전자 를 사용하여 MongoDB 에 데이터를 쓰기 (write) 데 사용할 수 있는 일반적인 함수를 보여주는 복사 가능한 코드 예제를 볼 수 있습니다.

이 페이지에 표시된 기능에 학습 보려면 각 섹션에 제공된 링크를 참조하세요.

이 페이지의 예제를 사용하려면 코드 예제를 샘플 애플리케이션 또는 자체 애플리케이션에 복사합니다. 코드 예제의 모든 자리 표시자(예: <connection string URI>)를 MongoDB 배포에 필요한 관련 값으로 바꿔야 합니다.

다음 샘플 애플리케이션을 사용하여 이 페이지의 코드 예제를 테스트할 수 있습니다. 샘플 애플리케이션을 사용하려면 다음 단계를 수행하세요.

  1. C 운전자 가 설치되어 있는지 확인합니다.

  2. 다음 코드를 복사하여 새 .c 파일에 붙여넣습니다.

  3. 이 페이지에서 코드 예제를 복사하여 파일의 지정된 줄에 붙여넣습니다.

1#include <bson/bson.h>
2#include <mongoc/mongoc.h>
3#include <stdio.h>
4
5int
6main (void)
7{
8 mongoc_client_t *client;
9 mongoc_collection_t *collection;
10 char *str;
11 bson_error_t error;
12
13 mongoc_init ();
14
15 client =
16 mongoc_client_new ("<connection string URI>");
17 collection =
18 mongoc_client_get_collection (client, "<database name>", "collection name");
19
20 // Start example code here
21
22 // End example code here
23
24 mongoc_collection_destroy (collection);
25 mongoc_client_destroy (client);
26 mongoc_cleanup ();
27
28 return EXIT_SUCCESS;
29}

다음 코드는 단일 문서 를 컬렉션 에 삽입하는 방법을 보여줍니다.

bson_t *document = BCON_NEW ("<field name>", BCON_UTF8 ("<value>"));
bson_error_t error;
if (!mongoc_collection_insert_one (
collection, document, NULL, NULL, &error)) {
fprintf (stderr, "Insert one operation failed: %s\n", error.message);
}
bson_destroy (document);

함수에 학습 보려면 mongoc_collection_insert_one() 문서 삽입 가이드 를 참조하세요.

다음 코드는 컬렉션 에 여러 문서를 삽입하는 방법을 보여줍니다.

size_t num_docs = 2;
bson_t *docs[num_docs];
docs[0] = BCON_NEW ("<field name>", BCON_UTF8 ("<value>"));
docs[1] = BCON_NEW ("<field name>", BCON_UTF8 ("<value>"));
bson_error_t error;
if (!mongoc_collection_insert_many (collection, (const bson_t **) docs, num_docs, NULL, NULL, &error)) {
fprintf (stderr, "Insert many operation failed: %s\n", error.message);
}
bson_destroy (docs[0]);
bson_destroy (docs[1]);

함수에 학습 보려면 문서 삽입 mongoc_collection_insert_many() 가이드 를 참조하세요.

다음 코드는 필드 를 만들거나 편집하여 컬렉션 의 단일 문서 를 업데이트 하는 방법을 보여줍니다.

bson_t *query = BCON_NEW ("<field to match>", BCON_UTF8 ("<value to match>"));
bson_t *update = BCON_NEW ("$set", "{", "<field name>", BCON_UTF8 ("<value>"), "}");
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_one() 함수에 학습 보려면 문서 업데이트 가이드 를 참조하세요.

다음 코드는 필드 를 만들거나 편집하여 컬렉션 에 있는 여러 문서를 업데이트 하는 방법을 보여줍니다.

bson_t *query = BCON_NEW ("<field to match>", BCON_UTF8 ("<value to match>"));
bson_t *update = BCON_NEW ("$set", "{", "<field name>", BCON_UTF8 ("<value>"), "}");
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);

mongoc_collection_update_many() 함수에 학습 보려면 문서 업데이트 가이드 를 참조하세요.

다음 코드는 컬렉션 에서 단일 문서 를 삭제 하는 방법을 보여줍니다.

bson_t *filter = BCON_NEW ("<field name>", BCON_UTF8 ("<value>"));
bson_error_t error;
if (!mongoc_collection_delete_one (collection, filter, NULL, NULL, &error)) {
fprintf (stderr, "Delete error: %s\n", error.message);
}
bson_destroy (filter);

mongoc_collection_delete_one() 함수에 학습 보려면 문서 삭제 가이드 를 참조하세요.

다음 코드는 컬렉션 에서 여러 문서를 삭제 하는 방법을 보여줍니다.

bson_t *filter = BCON_NEW ("<field name>", BCON_UTF8 ("<value>"));
bson_error_t error;
if (!mongoc_collection_delete_many (collection, filter, NULL, NULL, &error)) {
fprintf (stderr, "Delete error: %s\n", error.message);
}
bson_destroy (filter);

mongoc_collection_delete_many() 함수에 학습 보려면 문서 삭제 가이드 를 참조하세요.

다음 코드는 단일 대량 작업으로 여러 쓰기 (write) 작업을 수행하는 방법을 보여줍니다.

bson_error_t error;
mongoc_bulk_operation_t *bulk =
mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
bson_t *insert_doc = BCON_NEW (
"<field name>", BCON_UTF8 ("<value>"),
"<field name>", BCON_UTF8 ("<value>"),
"<field name>", BCON_UTF8 ("<value>"),
"<field name>", BCON_UTF8 ("<value>")
);
mongoc_bulk_operation_insert(bulk, insert_doc);
bson_destroy (insert_doc);
bson_t *query = BCON_NEW ("<field to match>", BCON_UTF8 ("<value to match>"));
bson_t *update = BCON_NEW ("$set", "{", "<field name>", BCON_UTF8 ("<value>"), "}");
mongoc_bulk_operation_update_one(bulk, query, update, false);
bson_destroy(query);
bson_destroy(update);
bool result = mongoc_bulk_operation_execute(bulk, NULL, &error);
if (!result) {
fprintf (stderr, "Bulk operation error: %s\n", error.message);
}
mongoc_bulk_operation_destroy (bulk);

함수에 학습 보려면 대량 쓰기 작업 가이드 를 mongoc_collection_bulk_operation_execute() 참조하세요.

돌아가기

데이터베이스 명령 실행