Delete Documents from CosmosDB based on condition through Query Explorer

后端 未结 4 1369
天涯浪人
天涯浪人 2021-02-18 14:56

What\'s the query or some other quick way to delete all the documents matching the where condition in a collection?
I want something like DELETE * FROM c WHE

4条回答
  •  耶瑟儿~
    2021-02-18 15:39

    This is a bit old but just had the same requirement and found a concrete example of what @Gaurav Mantri wrote about.

    The stored procedure script is here:

    https://social.msdn.microsoft.com/Forums/azure/en-US/ec9aa862-0516-47af-badd-dad8a4789dd8/delete-multiple-docdb-documents-within-the-azure-portal?forum=AzureDocumentDB

    Go to the Azure portal, grab the script from above and make a new stored procedure in the database->collection you need to delete from.

    Then right at the bottom of the stored procedure pane, underneath the script textarea is a place to put in the parameter. In my case I just want to delete all so I used:

    SELECT c._self FROM c

    I guess yours would be:

    SELECT c._self FROM c WHERE c.DocumentType = 'EULA'

    Then hit 'Save and Execute'. Viola, some documents get deleted. After I got it working in the Azure Portal I switched over the Azure DocumentDB Studio and got a better view of what was happening. I.e. I could see I was throttled to deleting 18 a time (returned in the results). For some reason I couldn't see this in the Azure Portal.

    Anyway, pretty handy even if limited to a certain amount of deletes per execution. Executing the sp is also throttled so you can't just mash the keyboard. I think I would just delete and recreate the Collection unless I had a manageable number of documents to delete (thinking <500).

    Props to Mimi Gentz @Microsoft for sharing the script in the link above.

    HTH

提交回复
热议问题