本文整理汇总了C#中Raven.Database.DocumentDatabase.Query方法的典型用法代码示例。如果您正苦于以下问题:C# DocumentDatabase.Query方法的具体用法?C# DocumentDatabase.Query怎么用?C# DocumentDatabase.Query使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Raven.Database.DocumentDatabase
的用法示例。
在下文中一共展示了DocumentDatabase.Query方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AfterBackupRestoreCanQueryIndex_CreatedAfterRestore
public void AfterBackupRestoreCanQueryIndex_CreatedAfterRestore()
{
db.Put("ayende", null, RavenJObject.Parse("{'email':'[email protected]'}"), RavenJObject.Parse("{'Raven-Entity-Name':'Users'}"), null);
db.StartBackup(BackupDir, false);
WaitForBackup(db, true);
db.Dispose();
DeleteIfExists(DataDir);
DocumentDatabase.Restore(new RavenConfiguration(), BackupDir, DataDir);
db = new DocumentDatabase(new RavenConfiguration { DataDirectory = DataDir });
db.SpinBackgroundWorkers();
QueryResult queryResult;
do
{
queryResult = db.Query("Raven/DocumentsByEntityName", new IndexQuery
{
Query = "Tag:[[Users]]",
PageSize = 10
});
} while (queryResult.IsStale);
Assert.Equal(1, queryResult.Results.Count);
}
示例2: AfterBackupRestoreCanQueryIndex_CreatedAfterRestore
public void AfterBackupRestoreCanQueryIndex_CreatedAfterRestore()
{
db.Put("ayende", null, JObject.Parse("{'email':'[email protected]'}"), JObject.Parse("{'Raven-Entity-Name':'Users'}"), null);
db.StartBackup("raven.db.test.backup");
WaitForBackup();
db.Dispose();
Directory.Delete("raven.db.test.esent", true);
DocumentDatabase.Restore("raven.db.test.backup", "raven.db.test.esent");
db = new DocumentDatabase(new RavenConfiguration { DataDirectory = "raven.db.test.esent" });
db.SpinBackgroundWorkers();
QueryResult queryResult;
do
{
queryResult = db.Query("Raven/DocumentsByEntityName", new IndexQuery
{
Query = "Tag:`Users`",
PageSize = 10
});
} while (queryResult.IsStale);
Assert.Equal(1, queryResult.Results.Length);
}
示例3: GetRevisionsRequiringActivation
public static IList<string> GetRevisionsRequiringActivation(DocumentDatabase database)
{
var currentTime = SystemTime.UtcNow;
database.WaitForIndexToBecomeNonStale(TemporalConstants.PendingRevisionsIndex, currentTime, null);
const int pageSize = 1024;
var qs = string.Format("{0}:[* TO {1:o}]", Activation, currentTime);
var query = new IndexQuery {
Start = 0,
PageSize = pageSize,
Cutoff = currentTime,
Query = qs,
FieldsToFetch = new[] { Constants.DocumentIdFieldName },
SortedFields = new[] { new SortedField(Activation) }
};
var list = new List<string>();
while (true)
{
var results = database.Query(TemporalConstants.PendingRevisionsIndex, query).Results;
list.AddRange(results.Select(x => x.Value<string>(Constants.DocumentIdFieldName)));
if (results.Count < pageSize)
return list;
query.Start += pageSize;
}
}
示例4: GetNextActivationDate
public static DateTime GetNextActivationDate(DocumentDatabase database)
{
var currentTime = SystemTime.UtcNow;
database.WaitForIndexToBecomeNonStale(TemporalConstants.PendingRevisionsIndex, currentTime, null);
var query = new IndexQuery {
Start = 0,
PageSize = 1,
Cutoff = currentTime,
FieldsToFetch = new[] { Activation },
SortedFields = new[] { new SortedField(Activation) }
};
var result = database.Query(TemporalConstants.PendingRevisionsIndex, query).Results.FirstOrDefault();
return result == null ? DateTime.MaxValue : result.Value<DateTime>(Activation);
}
示例5: AfterBackupRestoreCanQueryIndex_CreatedAfterRestore
public void AfterBackupRestoreCanQueryIndex_CreatedAfterRestore()
{
DeleteIfExists("raven.db.test.backup"); // for full backups, we can't have anything in the target dir
db.Put("ayende", null, RavenJObject.Parse("{'email':'[email protected]'}"), RavenJObject.Parse("{'Raven-Entity-Name':'Users'}"), null);
db.StartBackup("raven.db.test.backup", false);
WaitForBackup(true);
db.Dispose();
DeleteIfExists("raven.db.test.esent");
DocumentDatabase.Restore(new RavenConfiguration(), "raven.db.test.backup", "raven.db.test.esent");
db = new DocumentDatabase(new RavenConfiguration { DataDirectory = "raven.db.test.esent" });
db.SpinBackgroundWorkers();
QueryResult queryResult;
do
{
queryResult = db.Query("Raven/DocumentsByEntityName", new IndexQuery
{
Query = "Tag:[[Users]]",
PageSize = 10
});
} while (queryResult.IsStale);
Assert.Equal(1, queryResult.Results.Count);
}
示例6: AfterFailedRestoreOfIndex_ShouldGenerateWarningAndResetIt
public void AfterFailedRestoreOfIndex_ShouldGenerateWarningAndResetIt()
{
db.Put("users/1", null, RavenJObject.Parse("{'Name':'Arek'}"), RavenJObject.Parse("{'Raven-Entity-Name':'Users'}"), null);
db.Put("users/2", null, RavenJObject.Parse("{'Name':'David'}"), RavenJObject.Parse("{'Raven-Entity-Name':'Users'}"), null);
WaitForIndexing(db);
db.StartBackup(BackupDir, false, new DatabaseDocument());
WaitForBackup(db, true);
db.Put("users/3", null, RavenJObject.Parse("{'Name':'Daniel'}"), RavenJObject.Parse("{'Raven-Entity-Name':'Users'}"), null);
WaitForIndexing(db);
db.StartBackup(BackupDir, true, new DatabaseDocument());
WaitForBackup(db, true);
db.Dispose();
IOExtensions.DeleteDirectory(DataDir);
var incrementalDirectories = Directory.GetDirectories(BackupDir, "Inc*");
// delete 'index-files.required-for-index-restore' to make backup corrupted according to the reported error
File.Delete(Path.Combine(incrementalDirectories.First(),
"Indexes\\Raven%2fDocumentsByEntityName\\index-files.required-for-index-restore"));
var sb = new StringBuilder();
DocumentDatabase.Restore(new RavenConfiguration(), BackupDir, DataDir, s => sb.Append(s), defrag: true);
Assert.Contains(
"Error: Index Raven%2fDocumentsByEntityName could not be restored. All already copied index files was deleted." +
" Index will be recreated after launching Raven instance",
sb.ToString());
db = new DocumentDatabase(new RavenConfiguration { DataDirectory = DataDir });
db.SpinBackgroundWorkers();
QueryResult queryResult;
do
{
queryResult = db.Query("Raven/DocumentsByEntityName", new IndexQuery
{
Query = "Tag:[[Users]]",
PageSize = 10
});
} while (queryResult.IsStale);
Assert.Equal(3, queryResult.Results.Count);
}