Comment faire pour sélectionner tous les documents d'un type dans RavenDB

StackOverflow https://stackoverflow.com/questions/3813395

  •  26-09-2019
  •  | 
  •  

Question

Jusqu'à présent, j'ai essayé ce qui suit:

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);
            }
        }
    }
}

Je suis en mesure de charger tout en ajoutant un index, puis en utilisant cet index comme une requête:

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.

Y at-il un moyen d'obtenir que tous les documents de type Widget sans avoir à créer un index?

A ce moment, je suis juste jouer avec RavenDB dans un environnement de bac à sable. Je me rends compte que ce qui est généralement pas la meilleure approche pour la récupération des données.

Était-ce utile?

La solution

Oui

utiliser la requête DocumentsByName - ce pour autant que je peux travailler n'est pas intuitive dans l'interface client au moment, mais ressemble à quelque chose comme ceci:

documentSession.LuceneQuery<ImageDocument>("Raven/DocumentsByEntityName")
                 .Where("Tag:Widgets")
                 .Take(100)
                 .ToArray();

Il est utile si vous connaissez l'API HTTP parfois:)

NB:. Notez comment il pluralises pour vous, ceci est une convention et peut être surpassée

Remarque: Dans la fourchette instable (donc susceptible d'être stable bientôt, ce qui précède peut facilement être réalisé avec

documentSession.Query<ImageDocument>().Take(100).ToArray()

Bien mieux

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top