https://portal.azure.com であれば、Azure Cosmos DBアカウントを開く(1) - >データエクスプローラ(2) - >ユーザーをクリック(3) - >新しいSQLクエリをクリックします。
Azureはテキストボックスを開き、クエリを入力します。
COSMOS DBは代わりにDELETEを使用できないことを確認しました。 https://stackoverflow.com/a/48339202/1198404 次のようなことをするべきです。
SELECT * FROM c DELETE c
SELECT * FROM c DELETE *
_
しかし私の試みのどれでもうまくいった。
削除を完全に実行するには、削除ストアドプロシージャを追加できます。
function bulkDeleteSproc(query) {
var collection = getContext().getCollection();
var collectionLink = collection.getSelfLink();
var response = getContext().getResponse();
var responseBody = {
deleted: 0,
continuation: true
};
query='SELECT * FROM root r';
// Validate input.
if (!query) throw new Error("The query is undefined or null.");
tryQueryAndDelete();
function tryQueryAndDelete(continuation) {
var requestOptions = {continuation: continuation};
console.log(requestOptions);
var isAccepted = collection.queryDocuments(collectionLink, query, requestOptions, function (err, retrievedDocs, responseOptions) {
if (err) throw err;
if (retrievedDocs.length > 0) {
// Begin deleting documents as soon as documents are returned form the query results.
// tryDelete() resumes querying after deleting; no need to page through continuation tokens.
// - this is to prioritize writes over reads given timeout constraints.
tryDelete(retrievedDocs);
} else if (responseOptions.continuation) {
// Else if the query came back empty, but with a continuation token; repeat the query w/ the token.
tryQueryAndDelete(responseOptions.continuation);
} else {
// Else if there are no more documents and no continuation token - we are finished deleting documents.
responseBody.continuation = false;
response.setBody(responseBody);
}
});
// If we hit execution bounds - return continuation: true.
if (!isAccepted) {
console.log("tryquerydelete not accepted");
response.setBody(responseBody);
}
}
// Recursively deletes documents passed in as an array argument.
// Attempts to query for more on empty array.
function tryDelete(documents) {
if (documents.length > 0) {
// Delete the first document in the array.
var isAccepted = collection.deleteDocument(documents[0]._self, {}, function (err, responseOptions) {
if (err) throw err;
responseBody.deleted++;
console.log("hi");
documents.shift();
// Delete the next document in the array.
tryDelete(documents);
console.log(isAccepted);
});
// If we hit execution bounds - return continuation: true.
if (!isAccepted) {
console.log("trydelete not accepted");
response.setBody(responseBody);
}
} else {
// If the document array is empty, query for more documents.
tryQueryAndDelete();
}
}
_
}
Portalからではなく、 BulkexeCutor でのみバルク削除しかできません。ポータルから一度に1つの項目を削除できます。
私は環境設定を異なる方法で処理します。私はあなたが各環境に別々のリソースグループを作成するか、少なくとも製造のために別のコレクションを作成します。リソースグループソリューションに関しては、コストダウンするために、使用していないときにテスト環境を引き下げるだけです。