2011-04-22 8 views
1

을 사용하여 여러 필드를 한 번에 검색 할 수 있습니까? GAE 용으로 설계되었으므로 원하는 모든 검색 막대를 말합니다.내 응용 프로그램에서 데이터 저장소

저는 데이터 저장소가 레코드를 저장하는 방법을 이해하고 있습니다. 기본적으로 해시 맵의 해시 맵입니다. 그래서 키가 있고, 개념적 단순성을 위해 JSON 값을 반환하는 문자열을 보게 될 것입니다. 내가 동시에 성과 이름을 검색하기를 원한다면

관계형 DB의 세계

, 나는

select from user where user.anyfield like 'bob' 
뭔가를 할 수 있으며, 데이터 저장소이

select * from user where user.firstname like 'bob' or user.lastname like 'bob' 

같은 뭔가를해야 할 것입니다

그리고 user.firstname 및/또는 user.lastname이 'bob'인 레코드를 자동으로 반환하는 사용자 엔터티의 모든 필드를 검색합니까?

+0

App Engine에 'or'또는 'like'가 없습니다. 두 가지 모두에 적합한 해결 방법이 있습니다. http://stackoverflow.com/questions/930966/app-engine-datastore-does-not-support-operator-or/931193#931193, http://stackoverflow.com/q/47786/70492에 각각 표시됩니다. – hyperslug

+0

@hyperslug 답변으로 게시해야합니다. @scphantm App Engine의 여러 속성을 필터링하는 것을 막을 수있는 방법은 없습니다. hyperslug에 대한 제한 사항이 있습니다. –

답변

2

App Engine은 OR을 지원하지 않지만 Nick은 here을 제안하므로 firstnames와 lastnames에 대한 쿼리를 수행하고 결과를 결합하여 동일하게 수행 할 수 있습니다.

또한 LIKE 비교를 직접 수행 할 수는 없지만 here과 같이 "starts with"쿼리를 수행 할 수 있습니다.

0

정확히 필요한 것을 수행하는 솔루션이 있습니다. 그것은 목록 속성과 관계 색인 엔티티를 사용합니다.

구현 예는 Objective를 사용하여 내 블로그 here에서 찾을 수 있습니다. 관계 색인 요소에 대한 자세한 내용은 Google IO track을 참조하십시오.