2017-12-06 6 views
0

私がコレクションを照会し、応答を返すために、単純なストアドプロシージャを書かれているが、スクリプトはNode.jsのように私はそれを実行するとき、私は400エラーコードと、次のエラーメッセージが出ます:CosmosDBストアドプロシージャのgetContext.getCollection()は何を返しますか?

を「文書から抽出されたのPartitionKeyにはありませんヘッダ」

getContext().getCollection.getSelfLink()値が、私はdbs/3Mk0AA==/colls/3Mk0AOWMbw0=/が、私のデータベース、コレクションIdsは他のいくつかの値が取得された印刷に指定されたものと一致。

どんな種類のヘルプでも大歓迎です。

+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値を返します。 1と一致していない文書から抽出

のPartitionKeyはヘッダ

あなたは間違ってのPartitionKeyを設定するため、この問題はあるべきで を指定しました。

パーティション化キーがcolorで、データベースに2つのパーティション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); 
関連する問題