diff --git a/src/database/view.rs b/src/database/view.rs index 81d14c3d5..5988f6ba4 100644 --- a/src/database/view.rs +++ b/src/database/view.rs @@ -89,8 +89,21 @@ where D: Deref QueryBuilder::new(self) } + pub fn raw_field_by_document_id( + &self, + name: &str, + id: DocumentId + ) -> Result>, Box> + { + let attr = self.schema.attribute(name).ok_or("field not found")?; + let key = DocumentKeyAttr::new(id, attr); + let vector = self.snapshot.get(key.as_ref())?; + + Ok(vector.map(|v| v.to_vec())) + } + pub fn document_by_id(&self, id: DocumentId) -> Result> - where T: DeserializeOwned + where T: DeserializeOwned, { let mut deserializer = Deserializer::new(&self.snapshot, &self.schema, id); Ok(T::deserialize(&mut deserializer)?)