CosmosDB 팀의 누군가가 이것을 분명히 알기를 바랍니다. 예를 들어DocumentDB는 결과가 없을 때 청구합니다.
, 우리는 공식 '성능 팁'에서 예를 살펴 경우 :
IDocumentQuery<Document> query = (from doc in client.CreateDocumentQuery(colSelfLink) where doc.Id == "myId" select document).AsDocumentQuery();
Document myDocument = null;
while (query.HasMoreResults)
{
FeedResponse<Document> res = await query.ExecuteNextAsync<Document>();
if (res.Count != 0) {
myDocument = res.Single();
break;
}
}
심판 : https://azure.microsoft.com/en-us/blog/performance-tips-for-azure-documentdb-part-1-2/
ref2 용 : 위의 예에서 https://docs.microsoft.com/en-us/azure/cosmos-db/performance-tips
, 만약 우리 쿼리가 결과를 반환하지 않는다는 것을 의미합니다. 즉, HasMoreResults
은 처음부터 거짓입니다. 2 가지 질문 :
ExecuteNextAsync
이 전혀 실행되지 않으면 요청 수수료가 있습니까? (HasMoreResults
은 항상 거짓 임)?질문 1)에 대한 답변이 '예'인 경우 요청 수수료를받는 방법은 무엇입니까? ExecuteNextAsync 항상 적어도 한 번 실행됩니다 있도록
감사합니다. 좋아, 아마도 조금 부정확했다. 세부 사항을 추가하겠습니다. 두 번째'HasMoreResults'가'false'를 반환하면'ExecuteNextAsync'가 두 번 실행되지 않습니다.'HasMoreResults'가 추가 요청 비용을 부과합니까? 그렇다면 그 정보를 얻는 방법? –
또는 실제로, 첫 번째 것은 아마도 기본적으로 'true'이고 그 이후의 것은'ExecuteNextAsync' 호출에 의해 설정됩니다. 그럴까요? –
예, "처음에는 기본값이 true이고 이전 ExecuteNextAsync 호출로 후속 값이 설정됩니다". HasMoreResults는 (lastContinuationToken! = null) –