我必须通过 Azure 门户从 azure cosmos DB 中删除一些文档。我在容器中编写了一个存储过程,它将删除必须删除的数据。但是在执行存储过程时,它将要求提供分区键值。我必须删除具有不同分区键的文档。
下面给出了使用的存储过程。
function bulkDeleteProcedure(deletedate) {
var collection = getContext().getCollection();
var collectionLink = collection.getSelfLink();
var response = getContext().getResponse();
var query = "SELECT * FROM c where c._ts = " + deletedate;
var responseBody = {
docs_deleted: 0,
continuation: true
};
// Validate input.
if (!query) throw new Error("The query is undefined or null.");
fetchData();
function fetchData(continuation) {
var requestOptions = {continuation: continuation};
var isAccepted = collection.queryDocuments(collectionLink, query, requestOptions, function (err, items, responseOptions) {
if (err) throw err;
// response.setBody(items);
if (items.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(items);
// response.setBody(items.length + " : inside retrvd docs");
} else if (responseOptions.continuation) {
// Else if the query came back empty, but with a continuation token; repeat the query w/ the token.
fetchData(responseOptions.continuation);
} else {
responseBody.continuation = false;
response.setBody(responseBody);
}
});
// If we hit execution bounds - return continuation: true.
if (!isAccepted) {
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++;
documents.shift();
// Delete the next document in the array.
tryDelete(documents);
});
// If we hit execution bounds - return continuation: true.
if (!isAccepted) {
response.setBody(responseBody);
}
} else {
// If the document array is empty, query for more documents.
fetchData();
}
}
}
假设我的分区键是车辆类型,并且我的车辆类型值为01到10。根据我的要求,sql查询将返回具有10个不同分区键值的文档。
当前方案就像我必须通过每次提供每个分区键值来运行存储过程 10 次。是否可以一次性为不同的分区键值运行此存储过程?
当前方案就像我必须通过每次提供每个分区键值来运行存储过程 10 次。是否可以一次性为不同的分区键值运行此存储过程?
不幸的是,不能。您不能为存储过程提供多个分区密钥。您需要执行存储过程10次。
您可以做的一件事是使用任何可用的SDK并编写代码在循环中执行存储过程。您可以创建一个分区键数组并循环该数组,并为该数组中的每个分区键执行存储过程。
本文向大家介绍如何使用Java从集合中删除多个文档?,包括了如何使用Java从集合中删除多个文档?的使用技巧和注意事项,需要的朋友参考一下 在Java中,com.mongodb.client.MongoCollection接口提供了方法deleteMany()。使用此方法,您可以一次从集合中删除多个文档,为此,您需要通过指定删除条件的过滤器。 示例 输出结果
我知道如何。。。 删除单个文档。 但我不知道如何删除Mongoose收藏中的所有文档。我想在用户单击按钮时执行此操作。我假设我需要向某个endpoint发送AJAX请求并让该endpoint进行删除,但我不知道如何在endpoint处处理删除。 在我的例子中,我有一个集合,我想在用户单击按钮时删除所有文档。 api/datetime/index.js API/datetime/datetime.c
问题内容: 我在Web应用程序中通过Hibernate使用JPA。这是两个实体(仅显示吸气剂): 如您所见,并称为“一对多”。 现在,我需要加载一个实例,删除部分或全部子代并保存更改。以下是对我不起作用的代码: 在上面的示例中未删除子实体。现在,我必须手动为每个孩子打电话。 有没有更简单的方法来管理子代? 请注意,我不想使用特定于Hibernate的功能,只能使用纯JPA。 问题答案: 对于JPA
我如何删除一个特定的文档中的一个集合在fiRecovery使用反应? 我在这里和谷歌上看了看,但我没有发现任何内在相关的东西。 我只是设法从我的集合中删除索引[0]的文档。 这状态idDoc接收所有id文档。 如果我只是传递. doc(idDoc),我会得到以下错误: Firebase Error: Function Collection Reference.doc()要求它的第一个参数是非空字符
从Spark中删除分区的替代方案是什么?有另一个实现来做到这一点? 谢了。
问题内容: 我想使用gson删除具有空集合或空值的属性。 我打印json,我有这个: 例如,对于该json,我不想拥有集合aiAvisos,有一种方法可以将其从json中删除。我实际上正在处理很多集合,在这里我展示了一个集合,我确实需要从json中删除它们。 我需要这样的东西: 我尝试将集合设置为null,我检查了文档,也没有方法… 请任何建议。 非常感谢阅读本文的人! 问题答案: 遵循的步骤: