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

MongoDB에서 데이터 읽기

이 페이지의 내용

  • 개요
  • 샘플 애플리케이션
  • 문서 찾기
  • 컬렉션의 문서 수 계산
  • 쿼리에서 반환된 문서 수 계산
  • 예상 문서 수
  • Retrieve Distinct Values
  • 데이터 변경 사항 모니터링

이 페이지에서는 C 운전자 를 사용하여 문서를 조회 하는 데 사용할 수 있는 일반적인 함수를 보여주는 복사 가능한 코드 예제를 확인할 수 있습니다.

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

이 페이지의 예제를 사용하려면 코드 예제를 샘플 애플리케이션 또는 자체 애플리케이션에 복사합니다. 코드 예제의 모든 자리 표시자(예: <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 = mongoc_client_new ("<connection string URI>");
16 collection = mongoc_client_get_collection (client, "<database name>", "collection name");
17
18 // Start example code here
19
20 // End example code here
21
22 mongoc_collection_destroy (collection);
23 mongoc_client_destroy (client);
24 mongoc_cleanup ();
25
26 return EXIT_SUCCESS;
27}

C 운전자 를 설치하는 방법에 대한 지침은 시작하기 가이드 에서 다운로드및 설치를 참조하세요.

다음 예시 에서는 지정된 필터하다 에 지정된 기준과 일치하는 문서 목록을 조회합니다.

bson_t *query = bson_new ();
// Add fields to query here
mongoc_cursor_t* results = mongoc_collection_find_with_opts (collection, query, NULL, NULL);
const bson_t *doc;
while (mongoc_cursor_next (results, &doc)) {
str = bson_as_canonical_extended_json (doc, NULL);
printf ("%s\n", str);
bson_free (str);
}
mongoc_cursor_destroy (results);
bson_destroy (query);

mongoc_collection_find_with_opts() 함수에 학습 보려면 문서 찾기 가이드 를 참조하세요.

다음 예시 에서는 지정된 컬렉션 의 문서 수를 반환합니다.

bson_t *query = bson_new ();
int64_t count =
mongoc_collection_count_documents (collection, query, NULL, NULL, NULL, &error);
printf ("%" PRId64 "\n", count);
bson_destroy (query);

mongoc_collection_count_documents() 함수에 학습 보려면 문서 계수 가이드 의 정확한 계수 조회 섹션을 참조하세요.

다음 예시 에서는 지정된 필터하다 에 지정된 기준과 일치하는 문서 수를 반환합니다.

bson_t *query = bson_new ();
// Add fields to query here
int64_t count =
mongoc_collection_count_documents (collection, query, NULL, NULL, NULL, &error);
printf ("%" PRId64 "\n", count);
bson_destroy (query);

mongoc_collection_count_documents() 함수에 학습 보려면 문서 계수 가이드 의 정확한 계수 조회 섹션을 참조하세요.

다음 예시 에서는 컬렉션 메타데이터 를 기반으로 지정된 컬렉션 의 대략적인 문서 수를 반환합니다.

int64_t count =
mongoc_collection_estimated_document_count (collection, NULL, NULL, NULL, &error);
printf ("%" PRId64 "\n", count);

mongoc_collection_estimated_document_count() 함수에 학습 보려면 문서 개수 가이드 의 예상 개수 조회 섹션을 참조하세요.

다음 예시 에서는 지정된 컬렉션 에 지정된 필드 이름의 모든 고유 값을 반환합니다.

bson_t reply;
bson_t *command = BCON_NEW ("distinct",
BCON_UTF8 ("<collection name>"),
"key",
BCON_UTF8 ("<field name>"));
if (!mongoc_collection_read_command_with_opts (collection, command, NULL, NULL, &reply, &error)) {
fprintf (stderr, "An error occurred: %s\n", error.message);
} else {
str = bson_as_canonical_extended_json (&reply, NULL);
printf ("%s\n", str);
bson_free (str);
}
bson_destroy(&reply);
bson_destroy(command);

distinct 명령에 학습 보려면 고유 필드 값 조회 가이드 를 참조하세요.

다음 예시 에서는 지정된 컬렉션 에 대한 변경 스트림 을 생성하고 해당 컬렉션 의 후속 변경 이벤트를 출력합니다.

mongoc_change_stream_t *change_stream;
bson_t *pipeline = bson_new ();
// Add stages to pipeline here
const bson_t *doc;
change_stream = mongoc_collection_watch (collection, pipeline, NULL);
while (mongoc_change_stream_next (change_stream, &doc)) {
str = bson_as_canonical_extended_json (doc, NULL);
printf ("Change: %s\n", str);
bson_free (str);
}
bson_destroy (pipeline);
mongoc_change_stream_destroy (change_stream);

mongoc_collection_watch() 함수에 학습 보려면 데이터 변경 모니터링 가이드 를 참조하세요.

돌아가기

대용량 파일 저장