0
나는 pymongo에 자동 수집 생성을 사용했다 :pymongo에 색인이없는 경우 모음을 만드는 방법은 무엇입니까?
client = MongoClient(url)
db = client.get_default_database()
my_collection = db['my_collection']
나는 그것이 마지막 문에 자동으로 생성 불행하게도
index_name = 'my_index'
if index_name not in my_collection.index_information():
my_collection.create_index(..., name=index_name, unique=False)
을 추가 생각
,이
pymongo.errors.OperationFailure: Collection ... doesn't exist
이 에러하도록 인도 제 생각에 그 수집은 처음 저장 될 때 만들어졌습니다. 인덱스 생성 코드를 넣을 곳이 없다.
그래서, 질문은 : 인덱스가있는 컬렉션을 만드는 방법입니다 (존재하지 않는 경우에만)?
나는이 대답 https://stackoverflow.com/a/9826294/258483을 읽고 있지만 두 존재의 확인을 작성하는 것을 의미하는 방법을 좋아하지 않는다 : 아직 존재하지 않는 컬렉션 index_information
를 호출
client = MongoClient(url)
db = client.get_default_database()
if 'my_collection' not in db.collection_names():
db.createCollection('my_collection')
my_collection = db['my_collection']
index_name = 'my_index'
if index_name not in my_collection.index_information():
my_collection.create_index(..., name=index_name, unique=False)
이렇게하면 'OperationFailure'가 발생합니다. 그렇지 않습니까? – Dims
인덱스가 이미 존재하면 MongoDB 서버는이 명령을 무시합니다. –
사례는 컬렉션이 존재하지 않을 수 있다는 것입니다. – Dims