到目前为止,我已经尝试了以下内容:
public class Widget
{
public int Id;
public string Name;
}
public static class Main
{
public static void Main()
{
// Initialize store and preload with widgets...
using (var session = store.OpenSession())
{
var widgets = session.Load<Widget>();
foreach(var widget in widgets)
{
Console.WriteLine(widget.Name);
}
}
}
}
我已经能够通过添加索引然后将该索引用作查询来加载所有内容:
var store = new DocumentStore();
store.DatabaseCommands.PutIndex("AllWidgets", new IndexDefinition<Widget>
{
Map = widget => from widget in widgets
select new { widget }
});
// Back in Main
var widgets = session.Query<Widget>("AllWidgets");
// Do stuff with widgets.
有没有办法只需获取Widget
类型的所有文档而无需创建索引?
此时我只是在沙盒环境中玩RavenDB。我意识到这通常不是获取数据的最佳方法。
答案 0 :(得分:11)
是
使用DocumentsByName查询 - 目前我可以解决的问题在客户端界面中并不直观,但看起来像这样:
documentSession.LuceneQuery<ImageDocument>("Raven/DocumentsByEntityName")
.Where("Tag:Widgets")
.Take(100)
.ToArray();
如果您有时知道HTTP API,它会有所帮助:)
注意:注意它是如何复数的,这是一个惯例,可以被覆盖。
注意:在不稳定的叉子中(很可能很快就会稳定,用
可以轻松实现上述目的)documentSession.Query<ImageDocument>().Take(100).ToArray()
好多了