2017-12-06 5 views
0

나는 컬렉션을 질의하고 응답을 반환하는 간단한 저장 프로 시저를 작성했지만 스크립트가 Node.js를 나는 그것을 실행할 때 나는 400 오류 코드 및 다음과 같은 오류 메시지가 얻을 :CosmosDB 저장 프로 시저에서 getContext.getCollection()이 반환하는 것은 무엇입니까?

"문서로부터 추출에 PartitionKey는하지 않습니다 헤더 "

getContext().getCollection.getSelfLink() 값이 나는 dbs/3Mk0AA==/colls/3Mk0AOWMbw0=/하지만 내 데이터베이스 및 수집 ID를 다른 값은 얻을 인쇄에 지정된 일치합니다.

모든 종류의 도움을 많이 주시면 감사하겠습니다.

+0

입니다. getSelfLink는 시스템 생성 ID를 인쇄하므로 문제가되지 않습니다. 저장 프로 시저의 소스 코드를 포함 할 수 있습니까? 요청 헤더의 파티션 키를 전달하고 있습니까? –

답변

0

Azure Cosmos DB에서 작성한 문서를 볼 때 설정 한 ID 외에도 몇 가지 시스템 생성 속성이 표시됩니다.

System vs. user defined resources에서 공식 성명을 찾을 수 있습니다.

{ 
    "id": "1", 
    "statusId": "new", 
    "_rid": "duUuAN3LzQEIAAAAAAAAAA==", 
    "_self": "dbs/duUuAA==/colls/duUuAN3LzQE=/docs/duUuAN3LzQEIAAAAAAAAAA==/", 
    "_etag": "\"0400d4ee-0000-0000-0000-5a24ac3f0000\"", 
    "_attachments": "attachments/", 
    "_ts": 1512352831 
} 

getContext().getCollection.getSelfLink() 방법은 "_self" 값이 설정되지 Id 값을 반환합니다. 일치하지 않습니다 문서로부터 추출 된

에 PartitionKey 헤더

잘못에 PartitionKey 설정으로 인해이 문제가해야한다에 를 지정했습니다.

파티션 키가 color이고 데이터베이스에 두 개의 파티션 redblue이 있다고 가정합니다. PK는 red 또는 blue이 아니라 color으로 설정해야합니다. 당신은 내가 전에 대답 유사한 스레드를 참조 할 수

: How to specify NONE partition key for deleting a document in Document DB java SDK?

은 당신을 도움이되기를 바랍니다.

0

예, 도움 주셔서 감사합니다. !!

다른 사람이 나를 위해 일한 저장 프로 시저를 실행하는 동안 파티션 키를 추가하려고합니다. 코드는

client.executeStoredProcedure('/dbs/<database-id>/colls/<collection-id>/sprocs/<storedproc-id>', <input to the procedure(if any)>, { partitionKey: <partition-field-id> }, callback);