public QueryDocumentIds ( string index, IndexQuery query, bool &stale ) : IEnumerable |
||
index | string | |
query | IndexQuery | |
stale | bool | |
return | IEnumerable |
private JArray PerformBulkOperation(string index, IndexQuery indexQuery, bool allowStale, Func <string, TransactionInformation, object> batchOperation) { var array = new JArray(); database.TransactionalStorage.Batch(actions => { var bulkIndexQuery = new IndexQuery { Query = indexQuery.Query, Start = indexQuery.Start, Cutoff = indexQuery.Cutoff, PageSize = int.MaxValue, FieldsToFetch = new[] { "__document_id" }, SortedFields = indexQuery.SortedFields }; bool stale; var queryResults = database.QueryDocumentIds(index, bulkIndexQuery, out stale); if (stale) { if (allowStale == false) { throw new InvalidOperationException( "Bulk operation cancelled because the index is stale and allowStale is false"); } } foreach (var documentId in queryResults) { var result = batchOperation(documentId, transactionInformation); array.Add(JObject.FromObject(result, new JsonSerializer { Converters = { new JsonEnumConverter() } })); } }); return(array); }
public void Execute(DocumentDatabase database) { if (database.Name != SpecificDatabaseName) return; bool stale; var queryResults = database.QueryDocumentIds("Notifications/Temp", new IndexQuery(), out stale); foreach (var documentId in queryResults) { database.Delete(documentId, null, null); } }