📅  最后修改于: 2020-11-28 13:47:02             🧑  作者: Mango
在本章中,我们将学习如何更新文档。使用Azure门户,可以轻松地更新文档,方法是在“文档资源管理器”中打开文档,然后在编辑器中像文本文件一样对其进行更新。
点击“保存”按钮。现在,当您需要使用.Net SDK更改文档时,只需替换它即可。您无需删除并重新创建它,这不仅很繁琐,而且还可以更改资源ID,而您在修改文档时就不想这样做。以下是使用.Net SDK更新文档的以下步骤。
让我们看一下下面的ReplaceDocuments任务,我们将在其中查询isNew属性为true的文档,但由于没有任何属性,我们将一无所获。因此,让我们修改我们之前添加的文档,这些文档的名称以“新客户”开头。
步骤1-将isNew属性添加到这些文档并将其值设置为true。
private async static Task ReplaceDocuments(DocumentClient client) {
Console.WriteLine();
Console.WriteLine(">>> Replace Documents <<
步骤2-使用相同的STARTSWITH查询获取要更新的文档,这将为我们提供文档,我们将其作为动态对象返回此处。
步骤3-附加isNew属性并将每个文档设置为true。
步骤4-调用ReplaceDocumentAsync,将文档的SelfLink与更新的文档一起传递。
现在只是为了证明这可行,查询isNew等于true的文档。让我们从CreateDocumentClient任务中调用上述查询。
private static async Task CreateDocumentClient() {
// Create a new instance of the DocumentClient
using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) {
database = client.CreateDatabaseQuery("SELECT * FROM c WHERE c.id =
'myfirstdb'").AsEnumerable().First();
collection = client.CreateDocumentCollectionQuery(database.CollectionsLink,
"SELECT * FROM c WHERE c.id = 'MyCollection'").AsEnumerable().First();
//await CreateDocuments(client);
//QueryDocumentsWithSql(client);
//await QueryDocumentsWithPaging(client);
//QueryDocumentsWithLinq(client);
await ReplaceDocuments(client);
}
}
编译并执行上述代码后,您将收到以下输出。
**** Replace Documents ****
Quering for documents with 'isNew' flag
Documents with 'isNew' flag: 0
Quering for documents to be updated
Found 2 documents to be updated
Updated document ‘isNew’ flag: True
Updated document ‘isNew’ flag: True
Quering for documents with 'isNew' flag
Documents with 'isNew' flag: 2