programing

Pymongo를 사용하여 컬렉션 이름에 변수를 사용할 수 있습니까?

skycolor 2023. 6. 21. 22:27
반응형

Pymongo를 사용하여 컬렉션 이름에 변수를 사용할 수 있습니까?

Pymongo를 사용하여 컬렉션 이름에 변수를 사용할 수 있습니까?예:

col = 'my_collection'
db.col.update()

사용할 수 있는 항목:

col = 'my_collection'
db[col].update()

언급

문자열에서 메서드를 호출하려고 합니다.이것은 피몽고에만 국한된 것이 아닙니다.

gettrr을 사용하여 문자열이 속성으로 존재하는지 확인할 수 있습니다.db객체를 호출합니다.

예.

my_collection = getattr(col, 'my_collection')
my_collection.update()

edit: getattr 접근법을 사용하면 문자열이 다음의 메서드 또는 속성이 아닌 경우 예외 처리가 가능합니다.col.

아소카 렐라의 대답은 완벽합니다.한 가지 추가적인 사항은 플라스크 모델의 클래스에 이 문장을 포함하는 것입니다.

__collection__="default"  #Any default collection, which may or may not be used by the application

컬렉션이 변수에 있다고 해서 컬렉션 특성의 정의를 건너뛸 수 있는 것은 아닙니다.이렇게 사용한 곳 아래에 코드를 붙여넣습니다.

class Collection(Document):
 __collection__ = "collection_1"
 structure = {
    "name": str,
    "email": str,
    "status": bool,
    "extra": dict
 }
 required_fields = ["name", "email"]    
 default_values = {"status": "inactive", "extra": {}}

 def insertDocument(self, data):
    print "model : " + data["collection"]
    db[data["collection"]].insert(data["data"])
    return "from model"

클래스 이름을 db 변수 - db.register([Collection])에 등록하는 것을 잊지 마십시오.

언급URL : https://stackoverflow.com/questions/24799988/is-it-possible-to-use-variable-for-collection-name-using-pymongo

반응형