다음을 통해 공유


.NET을 사용하여 Azure Cosmos DB for MongoDB API에서 컬렉션 관리

적용 대상: MongoDB

네이티브 MongoDB 클라이언트 드라이버를 사용하여 Azure Cosmos DB에 저장된 MongoDB 컬렉션을 관리합니다.

참고 항목

예제 코드 조각은 GitHub에서 .NET 프로젝트로 사용할 수 있습니다.

API for MongoDB 참조 설명서 | MongoDB 패키지(NuGet)

컬렉션 이름 지정

Azure Cosmos DB에서 컬렉션은 관계형 데이터베이스의 테이블과 유사합니다. 컬렉션을 만들 때 컬렉션 이름은 컬렉션 리소스 및 모든 자식 문서에 액세스하는 데 사용되는 URI의 세그먼트를 형성합니다.

컬렉션 인스턴스 가져오기

컬렉션 클래스의 인스턴스를 사용하여 서버의 컬렉션에 액세스합니다.

다음 코드 조각은 이미 클라이언트 연결을 만들었다고 가정합니다.

컬렉션 만들기

컬렉션을 만들려면 컬렉션에 문서를 삽입합니다.

// insert one document
var product = new BsonDocument
{
    { "name", "Sand Surfboard" },
    { "category", "gear-surf-surfboards" },
    { "count", 1 }
};

client.GetDatabase("adventureworks").GetCollection<BsonDocument>("products").InsertOne(product);

// insert many documents
var products = new List<BsonDocument>() 
{
    new BsonDocument
    {
        { "name", "Sand Surfboard" },
        { "category", "gear-surf-surfboards" },
        { "count", 1 }
    },
    new BsonDocument
    {
        { "name", "Ocean Surfboard" },
        { "category", "gear-surf-surfboards" },
        { "count", 5 }
    }
};

client.GetDatabase("adventureworks").GetCollection<BsonDocument>("products").InsertMany(products);

컬렉션 삭제

영구적으로 제거하려면 데이터베이스에서 컬렉션을 삭제합니다. 그러나 컬렉션에 액세스하는 다음 삽입 또는 업데이트 작업은 해당 이름으로 새 컬렉션을 만듭니다.

client.GetDatabase("adventureworks").DropCollection("products");

컬렉션 인덱스 가져오기

인덱스는 MongoDB 쿼리 엔진에서 데이터베이스 쿼리의 성능을 향상시키는 데 사용됩니다.

var indexes = client.GetDatabase("adventureworks").GetCollection<BsonDocument>("products").Indexes;

var count = 0;
using (var cursor = await indexes.ListAsync())
{
    do
    {
        if (cursor.Current != null)
        {
            foreach (var index in cursor.Current)
            {
                Console.WriteLine(cursor.Current);
                count++;
            }
        }
    }
    while (await cursor.MoveNextAsync());
}

참고 항목