Javascript 如何使用NodeJS删除DocumentDB中的所有文档?
我有一个集合用户,它有许多不同的属性 Q.1我想使用特定查询运行查询,并使用nodejs删除所有这些文档,我该怎么做 Q.2如果我想使用nodejs删除所有文档,我该怎么做Javascript 如何使用NodeJS删除DocumentDB中的所有文档?,javascript,node.js,azure,azure-cosmosdb,Javascript,Node.js,Azure,Azure Cosmosdb,我有一个集合用户,它有许多不同的属性 Q.1我想使用特定查询运行查询,并使用nodejs删除所有这些文档,我该怎么做 Q.2如果我想使用nodejs删除所有文档,我该怎么做 async.forEach(orders, function(order, callback) { client.deleteDocument(colle._self,order, function(err, success) { if (err) {
async.forEach(orders, function(order, callback) {
client.deleteDocument(colle._self,order, function(err, success) {
if (err) {
callback(err);
} else {
callback(null, success);
}
});
}, function(err, result) {
if (err) {
return respondFailed(res, { 'message': err }, 400);
} else {
respondSuccess(res, null, 0, { message: 'All Orders deleted.' });
}
});
谢谢你的关心。最后我发现了我的错误 在我的代码中,我传递的是coll.\u self-collection链接,而不是docu.\u self-link
async.forEach(orders, function(order, callback) {
client.deleteDocument(order._self,order, function(err, success) {
if (err) {
callback(err);
} else {
callback(null, success);
}
});
}, function(err, result) {
if (err) {
return respondFailed(res, { 'message': err }, 400);
} else {
respondSuccess(res, null, 0, { message: 'All Orders deleted.' });
}
});
我找不到批量删除的简单示例。 下面是一个使用@azure/cosmos sdk的类似解决方案:
const { resources: users } = await container.items
.query({
query: "SELECT * from u"
})
.fetchAll();
users.map(async usr => {
await container.item(usr.id, usr.pk).delete()
})
请告诉我们到目前为止您尝试了什么,遇到了什么问题。不确定您在问什么。看起来您知道如何根据代码片段删除文档。你遇到了什么特别的问题吗?你是否在客户端应用程序中与之抗争?在存储过程中?请相应地编辑您的问题。如果您仍然需要,删除整个集合,或者创建一个新集合是否更容易?@hsulriksen集合按小时计费(这是最小的时间单位)。因此,集合删除+重新创建可能不实用,尤其是在重复执行此操作(例如单元测试)的情况下。当您必须删除100个文档时,这似乎是非常低效的解决方案。这是documentDB提供的唯一解决方案吗?@Amitava如果您有更好的解决方案,我只找到了这个解决方案,请告诉我。亲爱的,这对我有好处。