QueryDocumentIds() public method

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);
        }
Ejemplo n.º 2
0
			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);
				}
			}