JavaScript를 사용하여 Azure Cosmos DB for MongoDB API에서 컬렉션 관리
적용 대상: MongoDB
네이티브 MongoDB 클라이언트 드라이버를 사용하여 Azure Cosmos DB에 저장된 MongoDB 컬렉션을 관리합니다.
참고 항목
예제 코드 조각은 GitHub에서 JavaScript 프로젝트로 사용할 수 있습니다.
API for MongoDB 참조 설명서 | MongoDB 패키지(npm)
컬렉션 이름 지정
Azure Cosmos DB에서 컬렉션은 관계형 데이터베이스의 테이블과 유사합니다. 컬렉션을 만들 때 컬렉션 이름은 컬렉션 리소스 및 모든 자식 문서에 액세스하는 데 사용되는 URI의 세그먼트를 형성합니다.
컬렉션 인스턴스 가져오기
컬렉션 클래스의 인스턴스를 사용하여 서버의 컬렉션에 액세스합니다.
다음 코드 조각에서는 클라이언트 연결을 이미 만들었으며 이러한 코드 조각 뒤에 클라이언트 연결을 닫은 것으로 가정합니다.
컬렉션 만들기
컬렉션을 만들려면 컬렉션에 문서를 삽입합니다.
// get database client for database
// if database or collection doesn't exist, it is created
// when the doc is inserted
// insert doc
const doc = { name: `product-${random}` };
const insertOneResult = await client.db("adventureworks").collection("products").insertOne(doc);
console.log(`Insert 1 - ${JSON.stringify(insertOneResult)}`);
// insert docs
const docs = [
{ name: `product-${random}` },
{ name: `product-${random}` }
];
const insertManyResult = await client.db("adventureworks").collection("products").insertMany(docs);
console.log(`Insert many ${JSON.stringify(insertManyResult)}`);
컬렉션 삭제
영구적으로 제거하려면 데이터베이스에서 컬렉션을 삭제합니다. 그러나 컬렉션에 액세스하는 다음 삽입 또는 업데이트 작업은 해당 이름으로 새 컬렉션을 만듭니다.
// Drop the collection from the database, removing it permanently.
// New accesses will create a new collection.
// drop from db instance
const dropCollection1 = await client.db("adventureworks").dropCollection("products");
console.log(`Collection dropped:\t${JSON.stringify(dropCollection1)}`);
// drop from collection instance
const dropCollection2 = await client.db("adventureworks").collection('products-2').drop();
console.log(`Collection dropped:\t${JSON.stringify(dropCollection2)}`);
위의 코드 조각은 다음 예제 콘솔 출력을 표시합니다.
Collection dropped: true
Collection dropped: true
done
컬렉션 인덱스 가져오기
인덱스는 MongoDB 쿼리 엔진에서 데이터베이스 쿼리의 성능을 향상시키는 데 사용됩니다.
// Get all indexes in collection
const collectionInstance = await client.db("adventureworks").collection('products')
const indexes = await collectionInstance.indexes();
console.log(`Indexes on collection:\n${Object.keys(indexes).map(key => `\t${key}: ${JSON.stringify(indexes[key])}\n`)}`);
위의 코드 조각은 다음 예제 콘솔 출력을 표시합니다.
Indexes on collection:
0: {"v":1,"key":{"_id":1},"name":"_id_","ns":"adventureworks.products"}
, 1: {"v":1,"key":{"name":1},"name":"name_1","ns":"adventureworks.products"}
done