반응형
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
반응형
'programing' 카테고리의 다른 글
Oracle 오류 PLS-00323: 하위 프로그램 또는 커서가 패키지 사양으로 선언되었으며 패키지 본문에 정의되어야 합니다. (0) | 2023.06.21 |
---|---|
메인 클래스가 없는 Gradle 빌딩 Spring Boot 라이브러리 (0) | 2023.06.21 |
스벳 유형 스크립트의 스벳 사용자 정의 이벤트 (0) | 2023.06.21 |
pthread_return 대 반환 (0) | 2023.06.16 |
Firebase 콘솔에서 이벤트 매개 변수를 보는 방법 (0) | 2023.06.16 |