如何从Cosmos DB中删除单个记录?
我可以选择使用SQL语法:
SELECT * FROM collection1 WHERE (collection1._ts > 0)
果然所有文件(类似于行?)都会被退回
但是,当我尝试删除时,这不起作用
DELETE FROM collection1 WHERE (collection1._ts > 0)
我如何实现这一目标?
DocumentDB API的SQL专门用于查询 . 也就是说,它只提供 SELECT ,而不是 UPDATE 或 DELETE .
SELECT
UPDATE
DELETE
这些操作完全受支持,但需要REST(或SDK)调用 . 例如,使用.net,您将调用 DeleteDocumentAsync() 或 ReplaceDocumentAsync() ,而在node.js中,这将调用 deleteDocument() 或 replaceDocument() .
DeleteDocumentAsync()
ReplaceDocumentAsync()
deleteDocument()
replaceDocument()
在您的特定方案中,您可以运行 SELECT 来识别要删除的文档,然后进行"delete"调用,每个文档一个(或者,为了提高效率和事务性,将要删除的文档数组传递到存储过程中) .
另一个需要考虑的选择是生存时间(TTL) . 您可以为集合启用此选项,然后为文档设置到期日期 . 文件将在您过期时自动清理 .
2 回答
DocumentDB API的SQL专门用于查询 . 也就是说,它只提供
SELECT
,而不是UPDATE
或DELETE
.这些操作完全受支持,但需要REST(或SDK)调用 . 例如,使用.net,您将调用
DeleteDocumentAsync()
或ReplaceDocumentAsync()
,而在node.js中,这将调用deleteDocument()
或replaceDocument()
.在您的特定方案中,您可以运行
SELECT
来识别要删除的文档,然后进行"delete"调用,每个文档一个(或者,为了提高效率和事务性,将要删除的文档数组传递到存储过程中) .另一个需要考虑的选择是生存时间(TTL) . 您可以为集合启用此选项,然后为文档设置到期日期 . 文件将在您过期时自动清理 .