You are currently browsing legacy 4.0 version of documentation. Click here to switch to the newest 4.2 version.

We can help you with migration to the latest RavenDB

Contact Us Now
see on GitHub

Session: Querying: How to Perform Queries Lazily

In some situations, query execution must be delayed. To cover such a scenario, lazily and many other query extensions have been introduced.

Lazily

query.lazily();

Return Value
Lazy<object[]> Lazy query initializer returning query results.

Example

const employeesLazy = session
    .query({ collection: "Employees" })
    .whereEquals("FirstName", "Robert")
    .lazily();

const employees = await employeesLazy.getValue(); // query will be executed here

Counts

query.countLazily();

Return Value
Lazy<number> Lazy query initializer returning a count of matched documents.

Example

const countLazy = session
    .query({ collection: "Employees" })
    .whereEquals("FirstName", "Robert")
    .countLazily();

const count = await countLazy.getValue(); // query will be executed here

Suggestions

query.executeLazy();

Return Value
Lazy<{ [key]: SuggestionResult }> Lazy query initializer containing a map with suggestions for matching executed query

Example

const suggestLazy = session
    .query({ indexName: "Employees_ByFullName" })
    .suggestUsing(builder => builder.byField("FullName", "Johne"))
    .executeLazy();

const suggestResult = await suggestLazy.getValue(); // query will be executed here
const suggestions = suggestResult["FullName"].suggestions;

Facets

query.executeLazy();

Return Value
Lazy<{ [key]: FacetResult }> Lazy query initializer containing a map with facet results matching executed query

Example

const facetsLazy = session
    .query({ indexName: "Camera/Costs" })
    .aggregateUsing("facets/CameraFacets")
    .executeLazy();

const facets = await facetsLazy.getValue(); // query will be executed here
const results = facets["manufacturer"];