2012-11-02 5 views
0
나는 푸른 Node.js를 SDK를 사용하고

반환하고 작업이 쿼리를 얻는 데 문제가 아니에요 :푸른 Node.js를 표 저장 쿼리 구함 결과

var ts1 = azure.createTableService(config.storageAccount, config.storageAccessKey, config.tableHost); 
var query = azure.TableQuery 
    .select() 
    .from('users') 
    .where('PartitionKey eq ?', '0') 
    .and('FriendsSeeVideo eq ?', 'true') 
    .and('Status eq ?', 'Active'); 

var firstTimeThrough = true; 
for (f in friends){ 
    if (firstTimeThrough){ 
     query.and('UserID eq ?', friends[f].id); 
     firstTimeThrough = false; 
    } 
    else query.or('UserID eq ?', friends[f].id); 
} 

내가 얻을 화면으로 쿼리를 작성하는 경우 다음과 같은 Azure 테이블 쿼리 :

query = {"_fields":[],"_from":"users","_where":["PartitionKey eq '0'"," and FriendsSeeVideo eq 'true'"," and Status eq 'Active'"," and UserID eq '763424639'"," or UserID eq '1385552681'"," or UserID eq '100001386550915'"," or UserID eq '100001869159941'"],"_top":null,"_partitionKey":null,"_nextPartitionKey":null,"_rowKey":null,"_nextRowKey":null} 

하지만 예상대로 결과를 반환하지 않습니다. 테이블 스토리지의 조건을 만족시키는 사용자가 1 명 있으며 그 결과는 사용자 ID 763424639로 사용자를 반환해야합니다. 그렇지 않습니다.

기본적으로 친구 세트를 전달하고 테이블 저장소에 묻는 중입니다.이 사람들이 users 테이블에 존재하는지 확인한 후 FriendsSeeVideo 설정을 사용하도록 설정 한 경우 반환해야합니다.

내가 뭘 잘못하고 있는지 알 수 있습니까?

+0

저장 장치로 전송되는 요청을 살펴 보는 것이 도움이 될 수 있습니다. 노드 SDK 또는 Fiddler와 같은 http 프록시에서 가져올 수 있는지 확인하십시오. –

답변

0

그냥 추측 하겠지만 'true'문자열 대신 'true'부울을 사용하고 싶습니까? 여기에서 무엇이 잘못 되었는가를 말하기는 어렵습니다. 아마도 반환 할 것으로 예상되는 실제 엔티티를 표시 할 수 있습니다.

+0

안녕 스티브, 그래, 그 트릭을하지 않았어, 아니 ... 흠 ... –

+0

야생 추측으로, 나는 당신이 논리 연산자 우선 순위에 의해 비트가 모든 것을 하나의 쿼리로 간다 믿습니다. 첫 번째 쿼리를 실행하여 결과를 얻은 다음 두 번째 쿼리를 적용 할 수 있습니까? –

0

[FriendsSeeVideoView] 필드를 [FriendsSeeVideoView]라는 틀린 이름으로 호출하고있었습니다.

내 예제 코드는 테이블 스토리지에서 세트를 비교하고 검색하는 방법을 궁금해하는 사람들에게 도움이 될 수 있으므로이 질문을 떠날 것입니다.