pub struct Statement {
pub namespace: String,
pub set_name: String,
pub index_name: Option<String>,
pub bins: Bins,
pub filters: Option<Vec<Filter>>,
pub aggregation: Option<Aggregation>,
}
Expand description
Query statement parameters.
Fields§
§namespace: String
Namespace
set_name: String
Set name
index_name: Option<String>
Optional index name
bins: Bins
Optional list of bin names to return in query.
filters: Option<Vec<Filter>>
Optional list of query filters. Currently, only one filter is allowed by the server on a secondary index lookup.
aggregation: Option<Aggregation>
Optional Lua aggregation function parameters.
Implementations§
source§impl Statement
impl Statement
sourcepub fn new(namespace: &str, set_name: &str, bins: Bins) -> Self
pub fn new(namespace: &str, set_name: &str, bins: Bins) -> Self
Create a new query statement with the given namespace, set name and optional list of bin names.
Examples
Create a new statement to query the namespace “foo” and set “bar” and return the “name” and “age” bins for each matching record.
let stmt = Statement::new("foo", "bar", Bins::from(["name", "age"]));
sourcepub fn add_filter(&mut self, filter: Filter)
pub fn add_filter(&mut self, filter: Filter)
Add a query filter to the statement. Currently, only one filter is allowed by the server on a secondary index lookup.
Example
This example uses a numeric index on bin baz in namespace foo within set bar to find all records using a filter with the range 0 to 100 inclusive:
let mut stmt = Statement::new("foo", "bar", Bins::from(["name", "age"]));
stmt.add_filter(as_range!("baz", 0, 100));