ノードを使用してAzure Document DB(cosmos DB)パーティションコレクションを作成しようとしています。node.jsでAzure DocumentDBパーティションコレクションを作成する
function _getOrCreateCollectionAsync(databaseUrl, collection){
var collectionUrl = `${databaseUrl}/colls/${collection.name}`,
def = Q.defer();
console.log("getting collection: " + collectionUrl);
client.readCollection(collectionUrl, (err, result) => {
if (err) {
if (err.code == 404) {
console.log("collection " + collection.name + " not found... creating...");
var colOptions = {};
colOptions.offerThroughput = collection.azureOptions.offerThroughput || 10000; //default is 10k
colOptions.partitionKey = ["/data"];
// colOptions.partitionKey = ["data"];
// colOptions.partitionKey = "/data";
// colOptions.partitionKey = "data";
var reqOptions = {
id : collection.name
//, partitionKey : ["/data"]
}
client.createCollection(databaseUrl, reqOptions, colOptions, (err, created) => {
if (err) {
console.log(err);
def.reject(err)
} else {
def.resolve(created);
}
});
} else {
console.log(err);
def.reject(err);
}
} else {
def.resolve(result);
}
});
return def.promise;
}
(イムはまだそれが動作するように取得しようと、コードだらしを無視してください)
私はこれを実行すると、あなたが私を上から見ることができるように、私はこのエラーに
.......... working with collection: testCollection
getting collection: dbs/testDb/colls/testCollection
collection testCollection not found... creating...
{ code: 400,
body: '{"code":"BadRequest","message":"Message: {\\"Errors\\":[\\"x-ms-documentdb-partitionkey header cannot be specified for this request\\"]}\\r\\nActivityId: (snip), Request URI: /apps/(snip)/services/(snip)/partitions/(snip)/replicas/(snip)"}',
activityId: '(snip)' }
を取得していますパーティションキーを定義するためのオプションが異なり、すべて同じ結果を返します。
また、reqOptionsオブジェクトに含める必要があるキーをパーティション化していることを示しています(この例ではCreate Collection in Azure DocumentDB with Different Partition Modeをガイドとして使用しています)。私がそれをしたとき、私はこのエラーを受けました。
.......... working with collection: testCollection
getting collection: dbs/testDb/colls/testCollection
collection testCollection not found... creating...
{ code: 400,
body: '{"code":"BadRequest","message":"The specified document collection is invalid.\\r\\nActivityId: (snip)"}',
activityId: '(snip)' }
この時点で私は紛失しており、何か助けがあれば幸いです。
おかげ
をあなたは 'collection.azureOptions.offerThroughput'で提供している値とは何ですか?それは2500未満ですか? –
私は400で始めましたが、私が投稿した文書を読みました.1万を超えていなければなりませんでした。私は10,100を置いたが、値が高すぎるという別のエラーが出た。だから私は10,000を使用しています –