私は単にdocumentDB APIの標準サンプルbulkImport sprocを実行しようとしています。オブジェクトの配列を渡すことはできません。私は常に400エラーを取得オブジェクトの配列を送信する明確な方向を与える文書にもかかわらず ..非常にイライラ。DocumentDB:bulkImportストアドプロシージャ - Array/JSONの問題で400エラーを取得する
その他の詳細: 'items'のプロパティで配列のオブジェクトを配列にラップして、それを私のsprocに含めても、同じ悪い要求を示すエラーはオブジェクトまたはJSON-シリアル化された。送信する前にJSON.stringify(docs)を実行しようとすると、反対側で解析できません。
不正リクエスト:ドキュメント本体は、オブジェクトまたはJSON直列化オブジェクトを表す文字列である必要があります。
bulkInsert.js: https://github.com/Azure/azure-documentdb-js-server/blob/master/samples/stored-procedures/BulkImport.js
マイコード(非同期ためdocumentdb-utilの使用):
execProc(docs, insertProc);
async function execProc(docs, insertProc){
let database = await dbUtil.database('test');
let collection = await dbUtil.collection(database, 'test');
let procInstance = await dbUtil.storedProcedure(collection, insertProc);
try{
let result = await dbUtil.executeStoredProcedure(procInstance, docs);
console.log(result);
} catch(e){
console.log(e.body)
}
}
ヘッダ
オブジェクト{のCache-Control:「NO- cache "、x-ms-version:" 2017-11-15 "、 ユーザーエージェント:" win32/10.0.16299 Nodejs/v8.9.0 documentdb-nodejs-s ... "、"no-cache" コンテンツタイプ: "application"アプリケーション:json "承認:myauth キャッシュコントロール:" no-cache " コンテンツタイプ:"アプリケーション/ json " ユーザーエージェント:" win32/10.0.16299 Nodejs/v8.9.0 documentdb-nodejs-sdk/1.14.1 " x-ms-date:" Mon、1120年12月11日07:32:29 GMT " X-MS-版: "2017年11月15日"
パス "/ DBS/MYDB/colls/MYCOLL /ストアドプロシージャ/ myBulkInsert"
のparams
アレイ(3)オブジェクト、オブジェクト、オブジェクト] 長さ:3
0:オブジェクト{ID: "0001"、タイプ: "ドーナツ"、名称: "ケーキ"、...}
1:Object {id: "0002"、タイプ: "ドーナツ"、名前: "Raised"、...}
2:オブジェクト{id: "0003"、タイプ: "ドーナツ"、名前: "Old Fashioned "、...}
[{
"id": "0001",
"type": "donut",
"name": "Cake",
"ppu": 0.55
},
{
"id": "0002",
"type": "donut",
"name": "Raised",
"ppu": 0.35
},
{
"id": "0003",
"type": "donut",
"name": "Old Fashioned",
"ppu": 0.25
}]