Запрос RavenDB не работает с C#, но он работает в RavenDB Studio?
На самом деле я хочу удалить все документы такого рода в тестовой процедуре, но я не смог сделать это с помощью DocumentStore.DatabaseCommands.DeleteByIndex
команда, поэтому я попытался посмотреть, смогу ли я запросить эти объекты, вот мой код:
var store = new DocumentStore { Url = "http://localhost:8080" };
store.Initialize();
var result= store.DatabaseCommands.Query("Raven/DocumentsByEntityName",
new IndexQuery { Query = "Tag : RunningTables" },null);
result.Results.ForEach(x=>x.WriteTo(new JsonTextWriter(Console.Out)));
Он не возвращает документ, но когда я использую RavenDB Studio и выполняю тот же запрос на Raven/DocumentsByEntityName
индекс.
Затем я взглянул на свою команду Url и понял, что start=30, поэтому изменил код следующим образом:
var result= store.DatabaseCommands.Query("Raven/DocumentsByEntityName",
new IndexQuery { Query = "Tag : RunningTables",Start=0 },null);
Но ничего не изменилось, за исключением того, что теперь Url больше не содержит start. Что не так с моим кодом?
1 ответ
Решение
ХОРОШО. Я понял, что не так с моим кодом. Я не выбрал базу данных по умолчанию, и в моей RavenDB было несколько баз данных. Итак, я сделал это так:
var store = new DocumentStore { Url = "http://localhost:8080" , DefaultDatabase = "MyDbName" };
store.Initialize();
var result= store.DatabaseCommands.Query("Raven/DocumentsByEntityName",
new IndexQuery { Query = "Tag : RunningTables" },null);
result.Results.ForEach(x=>x.WriteTo(new JsonTextWriter(Console.Out)));