2017-08-30 4 views
0

今はDocumentDbでストアード・プロシージャーを調べていますが、私はhello worldテストを実行しようとしています。私はストアドプロシージャが存在することを確認することができます。なぜなら、ストアドプロシージャのすべてを照会するときに返されるからです(今はsprocを開始するつもりです)。私はノードドライバを使用していますが、他のすべてのクエリ、挿入、および削除が完了しました。ここで私が実行したスニペットは、次のとおりです。DocumentDBノード・ドライバーからストアード・プロシージャーを実行するときの要求の応答が悪い

client.executeStoredProcedure( 
    'dbs/fun-db/colls/my-coll/sprocs/testSproc', //path to sproc 
    { partitionKey: ['2017-08-15'] }, //options 
    (err, response) => { //callback 
     if(err) console.error(err) 
     console.log(JSON.stringify(response)) 
    } 
) 

これはコンソールに出力されているものです。

{ 
    code: 400, 
    body: '{ 
     "code":"BadRequest", 
     "message":"Message: {\\"Errors\\":[\\"The partition key supplied in x-ms-partitionkey header has fewer components than defined in the the collection.\\"]}\\r\\nActivityId: e696b9e2-8ce4-4343-abd3-62faab04eac2, Request URI: /apps/eef89563-3ff8-4aa9-b087-aa280317b73d/services/18fc5ba1-10e1-40c2-880f-0a2a89c36b7f/partitions/b4910dfa-a34e-4332-9f2b-632139db609e/replicas/131478338408915195p/" 
    }', 
    activityId: 'e696b9e2-8ce4-4343-abd3-62faab04eac2', 
    substatus: 1001 
} 

私は日付に基づいて、私のパーティションを設定し、私がするoptions.partitionKeyを設定しました私が知っている価値はパーティションに存在します。 partitionKeyがdate(ドキュメント上のパラメータ)である必要があるという機会を得て、私は同じ結果でそれを試しました。

+0

'client.executeStoredProcedure'の2番目のパラメータ呼び出しで' undefined'を実行してみてください。私はあなたのオプションオブジェクトが実際にsprocのパラメータであると思っているのだろうかと思っています。 –

+0

私のもう一つの考えは、partitionKeyの配列値が今や文字列である必要があるかもしれないということです。私はそれが配列として指定されていたが、それは文字列を受け入れたことを思い出しているようですが、文書が文字列でなければならないことがわかりました。多分、彼らはもはやそれが配列であることを好まないかもしれません...または多分私の記憶はオフです。 –

+0

これらのいずれかで問題が解決した場合は、私に知らせてください。受諾できる回答を作成します。 –

答えて

0

client.executeStoredProcedureの2番目のパラメータ呼び出しで未定義にします。あなたのオプションオブジェクトは実際にはsprocのパラメータだと考えています。

関連する問題