You are currently browsing legacy 3.0 version of documentation. Click here to switch to the newest 5.0 version.

We can help you with migration to the latest RavenDB

Contact Us Now
see on GitHub

Commands: Querying: How to query a database?

Use Query method to fetch results of a selected index according to a specified query.

Syntax

public QueryResult query(String index, IndexQuery query);

public QueryResult query(String index, IndexQuery query, String[] includes);

public QueryResult query(String index, IndexQuery query, String[] includes, boolean metadataOnly);

public QueryResult query(String index, IndexQuery query, String[] includes, boolean metadataOnly, boolean indexEntriesOnly);
Parameters
index String A name of an index to query
query IndexQuery A query definition containing all information required to query a specified index.
includes String[] An array of relative paths that specify related documents ids which should be included in a query result. (default: null)
metadataOnly boolean True if returned documents should include only metadata without a document body. (default: false)
indexEntriesOnly boolean True if query results should contain only index entries. (default: false)
Return Value
QueryResult Object which represents results of a specified query.

Example I

A sample Query method call that returns orders for a company specified:

result = store.getDatabaseCommands().query("Orders/Totals", new IndexQuery("Company:companies/1"));

List<RavenJObject> users = result.getResults(); // documents resulting from this query - orders

Example II

If a model of your documents is such that they reference others and you want to retrieve them together in a single query request, then you need to specify paths to properties that contain IDs of referenced documents:

result = store.getDatabaseCommands().query("Orders/Totals", new IndexQuery(), new String[] { "Company", "Employee" });

Collection<RavenJObject> referencedDocs = result.getIncludes(); // included documents - companies and employees