Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

PyMongo에서 컬렉션 이름에 변수를 사용하는 방법

PyMongo는 Python 환경에서 MongoDB를 손쉽게 다룰 수 있도록 다양한 도구를 제공하는 배포판입니다. MongoDB 작업 시 컬렉션 이름을 코드에 직접 하드코딩하지 않고 변수로 지정해야 하는 경우가 종종 있습니다. 이때 대괄호([]) 표기법을 활용하면 변수에 담긴 문자열을 컬렉션 이름으로 그대로 사용할 수 있습니다.

기본 문법

컬렉션 이름에 변수를 사용하려면 아래와 같은 형식으로 작성합니다.

var yourVariableName = "yourCollectionName";

db[yourVariableName].yourOperationName;

즉, 점(.) 표기법 대신 대괄호 안에 변수를 넣으면 해당 변수의 값이 컬렉션 이름으로 해석됩니다.

예제: 변수로 컬렉션 생성하고 문서 삽입하기

실제 동작을 확인하기 위해 변수에 저장된 이름으로 컬렉션을 생성하고 문서를 삽입해 보겠습니다.

> var storeCollectionName = "new_Collection";

> db[storeCollectionName].insertOne({"UserName":"John","UserAge":21});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c912aea4afe5c1d2279d6a0")
}
> db[storeCollectionName].insertOne({"UserName":"Carol","UserAge":24});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c912af54afe5c1d2279d6a1")
}
> db[storeCollectionName].insertOne({"UserName":"Mike","UserAge":27});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c912afe4afe5c1d2279d6a2")
}

위 예제에서는 storeCollectionName이라는 변수에 "new_Collection"이라는 값을 할당한 뒤, insertOne() 메서드로 세 개의 문서를 차례대로 삽입했습니다. 모든 삽입 작업이 정상적으로 처리되어 acknowledged가 true로 반환되고, 각 문서마다 고유한 ObjectId가 발급된 것을 확인할 수 있습니다.

저장된 문서 조회하기

find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 조회할 수 있습니다. 마찬가지로 변수를 활용한 대괄호 표기법을 적용합니다.

> db[storeCollectionName].find().pretty();

실행 결과는 다음과 같습니다.

{
    "_id" : ObjectId("5c912aea4afe5c1d2279d6a0"),
    "UserName" : "John",
    "UserAge" : 21
}
{
    "_id" : ObjectId("5c912af54afe5c1d2279d6a1"),
    "UserName" : "Carol",
    "UserAge" : 24
}
{
    "_id" : ObjectId("5c912afe4afe5c1d2279d6a2"),
    "UserName" : "Mike",
    "UserAge" : 27
}

정리

이처럼 db[변수명] 형태의 대괄호 표기법을 사용하면 컬렉션 이름을 동적으로 지정할 수 있습니다. 이 방식은 런타임에 컬렉션 이름이 결정되거나, 여러 컬렉션을 반복문으로 처리해야 하는 상황에서 특히 유용합니다. PyMongo에서도 동일한 원리가 적용되므로, Python 코드에서 collection_name 변수를 활용해 db[variable] 형태로 접근하면 됩니다.