문제

대량 페치하고 싶은 키 이름 목록이 있습니다 (키 이름은 엔티티에 첨부 된 StringListProperty에 저장됩니다). 나의 일반적인 계획은 다음과 같습니다.

usernames = userrefInstance.users # A collection of strings on another 
model. 
keys = [Key.from_path('User', key_name) for username in usernames] 
users = db.get(keys)

내 질문이 키가 key .from_path가 데이터 스토어에 부딪 쳤습니까? 나는 가능한 한 빨리 노력하고 있다면 key.from_path가 데이터 저장소에 닿으면 키 모음을 저장하기 위해 다른 방법으로 작업해야합니다. StringListPropererties에서 사용자 친화적 인 쿼리.

도움이 되었습니까?

해결책

다른 그룹에 대해 파고 질문 한 후에는 다음과 같습니다.

키는 앱 ID와 경로에 의해 전적으로 결정되므로이를 위해 데이터 저장소에 액세스 할 필요가 없습니다. - 닉 존슨

또는 db.key 목록을 사용할 수도 있습니다

다른 팁

당신이 전달하는 매개 변수 Key.from_path() 고유 한 키를 구축하는 데 필요한 모든 정보를 포함하여 데이터 스토어에 도달 할 필요가 없습니다.

데이터 스토어의 각 엔티티에는 독특하게 식별하는 키가 있습니다. 키는 다음 구성 요소로 구성됩니다.

  1. 데이터 스토어 쿼리의 목적으로 분류하는 엔티티의 종류
  2. 개별 엔티티의 식별자, 이는
    • 키 이름 문자열
    • 정수 숫자 ID
  3. 데이터 스토어 계층 내에서 엔티티를 찾는 선택적 조상 경로

원천: https://developers.google.com/appengine/docs/python/datastore/entities

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top