작성
·
284
1
안녕하세요 강의 잘 보고있습니다.
cnt = members.find({"email": email}).count() 관련해서 질문이 있는데요, 저번 강의에서도 find().count()에 버전 관련 오류가 발생했었고 이번에도 당연히 [AttributeError: 'Cursor' object has no attribute 'count’] 오류가 발생했는데요, 그래서 구글링을 통해
cnt = members.collection.estimated_document_count({"email": email})
if cnt > 0:
flash("중복된 이메일 주소입니다.")
return render_template("join.html")
collection.estimated_document_count({"email": email}) 를 찾아서 적용했고 커서 오류를 해결했습니다. 이렇게 회원가입 db를 members로 잘 넘겼는데요,
이메일 주소 중복 부분에서 시크릿키 적용을 한 후에도 이메일이 중복돼도 회원가입이 되고 db가 넘어가더라구요.
그래서 또 구글링을 했고
cnt = members.count_documents({"email": email})
if cnt > 0:
flash("중복된 이메일 주소입니다.")
return render_template("join.html")
count_documents({"email": email})
코드로 문제 해결을 하기는 했는데요, 여기서
아무리 찾아봐도 차이점을 못찾겠어요. 차이점 알려주시면 감사하겠습니다 ! 부탁드려요 !
답변 1
0
쿼리 필터를 사용하지 않고 메타데이터를 사용하여 컬렉션을 카운팅 합니다.
쿼리 필터를 사용하여 컬렉션을 카운팅 합니다.
사전적 차이는 이정도로 보이는데 사실 위 2개의 함수의 큰 차이점은 샤딩된 클러스터의 환경에서 나타납니다.