首页 文章

Cosmos DB - 删除文档

提问于
浏览
10

如何从Cosmos DB中删除单个记录?

我可以选择使用SQL语法:

SELECT *
FROM collection1
WHERE (collection1._ts > 0)

果然所有文件(类似于行?)都会被退回

但是,当我尝试删除时,这不起作用

DELETE
FROM collection1
WHERE (collection1._ts > 0)

我如何实现这一目标?

2 回答

  • 16

    DocumentDB API的SQL专门用于查询 . 也就是说,它只提供 SELECT ,而不是 UPDATEDELETE .

    这些操作完全受支持,但需要REST(或SDK)调用 . 例如,使用.net,您将调用 DeleteDocumentAsync()ReplaceDocumentAsync() ,而在node.js中,这将调用 deleteDocument()replaceDocument() .

    在您的特定方案中,您可以运行 SELECT 来识别要删除的文档,然后进行"delete"调用,每个文档一个(或者,为了提高效率和事务性,将要删除的文档数组传递到存储过程中) .

  • 3

    另一个需要考虑的选择是生存时间(TTL) . 您可以为集合启用此选项,然后为文档设置到期日期 . 文件将在您过期时自动清理 .

相关问题