pub async fn aggregate<T>( pipeline: impl IntoIterator<Item = Document>, options: impl Into<Option<AggregateOptions>>, collection_name: &str, db: &Database, ) -> Result<Vec<T>, Error>where for<'a> T: DeserializeOwned + Unpin + Send + Sync,