Trait pliantdb_core::schema::view::View [−][src]
A map/reduce powered indexing and aggregation schema.
Inspired by CouchDB
’s view
system
This implementation is under active development, our own docs explaining our implementation will be written as things are solidified.
Associated Types
type Collection: Collection
[src]
The collection this view belongs to
type Key: Key + 'static
[src]
The key for this view.
type Value: Serialize + for<'de> Deserialize<'de> + Send + Sync
[src]
An associated type that can be stored with each entry in the view.
Required methods
fn version(&self) -> u64
[src]
The version of the view. Changing this value will cause indexes to be rebuilt.
fn name(&self) -> Cow<'static, str>
[src]
The name of the view. Must be unique per collection.
fn map(&self, document: &Document<'_>) -> MapResult<Self::Key, Self::Value>
[src]
The map function for this view. This function is responsible for emitting entries for any documents that should be contained in this View. If None is returned, the View will not include the document.
Provided methods
fn reduce(
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
rereduce: bool
) -> Result<Self::Value, Error>
[src]
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
rereduce: bool
) -> Result<Self::Value, Error>
The reduce function for this view. If Err(Error::ReduceUnimplemented)
is returned, queries that ask for a reduce operation will return an
error. See CouchDB
’s Reduce/Rereduce
documentation
for the design this implementation will be inspired by