Struct revolt_database::MongoDb
source · pub struct MongoDb(pub Client, pub String);Expand description
MongoDB implementation
Tuple Fields§
§0: Client§1: StringImplementations§
source§impl MongoDb
impl MongoDb
sourcepub fn col<T>(&self, collection: &str) -> Collection<T>
pub fn col<T>(&self, collection: &str) -> Collection<T>
Get a collection by its name
sourcepub async fn insert_one<T: Serialize>(
&self,
collection: &'static str,
document: T
) -> Result<InsertOneResult>
pub async fn insert_one<T: Serialize>( &self, collection: &'static str, document: T ) -> Result<InsertOneResult>
Insert one document into a collection
sourcepub async fn count_documents(
&self,
collection: &'static str,
projection: Document
) -> Result<u64>
pub async fn count_documents( &self, collection: &'static str, projection: Document ) -> Result<u64>
Count documents by projection
sourcepub async fn find_with_options<O, T: DeserializeOwned + Unpin + Send + Sync>(
&self,
collection: &'static str,
projection: Document,
options: O
) -> Result<Vec<T>>where
O: Into<Option<FindOptions>>,
pub async fn find_with_options<O, T: DeserializeOwned + Unpin + Send + Sync>( &self, collection: &'static str, projection: Document, options: O ) -> Result<Vec<T>>where O: Into<Option<FindOptions>>,
Find multiple documents in a collection with options
sourcepub async fn find<T: DeserializeOwned + Unpin + Send + Sync>(
&self,
collection: &'static str,
projection: Document
) -> Result<Vec<T>>
pub async fn find<T: DeserializeOwned + Unpin + Send + Sync>( &self, collection: &'static str, projection: Document ) -> Result<Vec<T>>
Find multiple documents in a collection
sourcepub async fn find_one_with_options<O, T: DeserializeOwned + Unpin + Send + Sync>(
&self,
collection: &'static str,
projection: Document,
options: O
) -> Result<Option<T>>where
O: Into<Option<FindOneOptions>>,
pub async fn find_one_with_options<O, T: DeserializeOwned + Unpin + Send + Sync>( &self, collection: &'static str, projection: Document, options: O ) -> Result<Option<T>>where O: Into<Option<FindOneOptions>>,
Find one document with options
sourcepub async fn find_one<T: DeserializeOwned + Unpin + Send + Sync>(
&self,
collection: &'static str,
projection: Document
) -> Result<Option<T>>
pub async fn find_one<T: DeserializeOwned + Unpin + Send + Sync>( &self, collection: &'static str, projection: Document ) -> Result<Option<T>>
Find one document
sourcepub async fn find_one_by_id<T: DeserializeOwned + Unpin + Send + Sync>(
&self,
collection: &'static str,
id: &str
) -> Result<Option<T>>
pub async fn find_one_by_id<T: DeserializeOwned + Unpin + Send + Sync>( &self, collection: &'static str, id: &str ) -> Result<Option<T>>
Find one document by its ID
sourcepub async fn update_one<P, T: Serialize>(
&self,
collection: &'static str,
projection: Document,
partial: T,
remove: Vec<&dyn IntoDocumentPath>,
prefix: P
) -> Result<UpdateResult>where
P: Into<Option<String>>,
pub async fn update_one<P, T: Serialize>( &self, collection: &'static str, projection: Document, partial: T, remove: Vec<&dyn IntoDocumentPath>, prefix: P ) -> Result<UpdateResult>where P: Into<Option<String>>,
Update one document given a projection, partial document, and list of paths to unset
sourcepub async fn update_one_by_id<P, T: Serialize>(
&self,
collection: &'static str,
id: &str,
partial: T,
remove: Vec<&dyn IntoDocumentPath>,
prefix: P
) -> Result<UpdateResult>where
P: Into<Option<String>>,
pub async fn update_one_by_id<P, T: Serialize>( &self, collection: &'static str, id: &str, partial: T, remove: Vec<&dyn IntoDocumentPath>, prefix: P ) -> Result<UpdateResult>where P: Into<Option<String>>,
Update one document given an ID, partial document, and list of paths to unset
sourcepub async fn delete_one(
&self,
collection: &'static str,
projection: Document
) -> Result<DeleteResult>
pub async fn delete_one( &self, collection: &'static str, projection: Document ) -> Result<DeleteResult>
Delete one document by the given projection
sourcepub async fn delete_one_by_id(
&self,
collection: &'static str,
id: &str
) -> Result<DeleteResult>
pub async fn delete_one_by_id( &self, collection: &'static str, id: &str ) -> Result<DeleteResult>
Delete one document by the given ID
Methods from Deref<Target = Client>§
sourcepub fn selection_criteria(&self) -> Option<&SelectionCriteria>
pub fn selection_criteria(&self) -> Option<&SelectionCriteria>
Gets the default selection criteria the Client uses for operations..
sourcepub fn read_concern(&self) -> Option<&ReadConcern>
pub fn read_concern(&self) -> Option<&ReadConcern>
Gets the default read concern the Client uses for operations.
sourcepub fn write_concern(&self) -> Option<&WriteConcern>
pub fn write_concern(&self) -> Option<&WriteConcern>
Gets the default write concern the Client uses for operations.
sourcepub fn database(&self, name: &str) -> Database
pub fn database(&self, name: &str) -> Database
Gets a handle to a database specified by name in the cluster the Client is connected to.
The Database options (e.g. read preference and write concern) will default to those of the
Client.
This method does not send or receive anything across the wire to the database, so it can be used repeatedly without incurring any costs from I/O.
sourcepub fn database_with_options(
&self,
name: &str,
options: DatabaseOptions
) -> Database
pub fn database_with_options( &self, name: &str, options: DatabaseOptions ) -> Database
Gets a handle to a database specified by name in the cluster the Client is connected to.
Operations done with this Database will use the options specified by options by default
and will otherwise default to those of the Client.
This method does not send or receive anything across the wire to the database, so it can be used repeatedly without incurring any costs from I/O.
sourcepub fn default_database(&self) -> Option<Database>
pub fn default_database(&self) -> Option<Database>
Gets a handle to the default database specified in the ClientOptions or MongoDB connection
string used to construct this Client.
If no default database was specified, None will be returned.
sourcepub async fn list_databases(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<ListDatabasesOptions>>
) -> impl Future<Output = Result<Vec<DatabaseSpecification, Global>, Error>>
pub async fn list_databases( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<ListDatabasesOptions>> ) -> impl Future<Output = Result<Vec<DatabaseSpecification, Global>, Error>>
Gets information about each database present in the cluster the Client is connected to.
sourcepub async fn list_databases_with_session(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<ListDatabasesOptions>>,
session: &mut ClientSession
) -> impl Future<Output = Result<Vec<DatabaseSpecification, Global>, Error>>
pub async fn list_databases_with_session( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<ListDatabasesOptions>>, session: &mut ClientSession ) -> impl Future<Output = Result<Vec<DatabaseSpecification, Global>, Error>>
Gets information about each database present in the cluster the Client is connected to
using the provided ClientSession.
sourcepub async fn list_database_names(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<ListDatabasesOptions>>
) -> impl Future<Output = Result<Vec<String, Global>, Error>>
pub async fn list_database_names( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<ListDatabasesOptions>> ) -> impl Future<Output = Result<Vec<String, Global>, Error>>
Gets the names of the databases present in the cluster the Client is connected to.
sourcepub async fn start_session(
&self,
options: impl Into<Option<SessionOptions>>
) -> impl Future<Output = Result<ClientSession, Error>>
pub async fn start_session( &self, options: impl Into<Option<SessionOptions>> ) -> impl Future<Output = Result<ClientSession, Error>>
Starts a new ClientSession.
sourcepub async fn watch(
&self,
pipeline: impl IntoIterator<Item = Document>,
options: impl Into<Option<ChangeStreamOptions>>
) -> impl Future<Output = Result<ChangeStream<ChangeStreamEvent<Document>>, Error>>
pub async fn watch( &self, pipeline: impl IntoIterator<Item = Document>, options: impl Into<Option<ChangeStreamOptions>> ) -> impl Future<Output = Result<ChangeStream<ChangeStreamEvent<Document>>, Error>>
Starts a new ChangeStream that receives events for all changes in the cluster. The
stream does not observe changes from system collections or the “config”, “local” or
“admin” databases. Note that this method (watch on a cluster) is only supported in
MongoDB 4.0 or greater.
See the documentation here on change streams.
Change streams require either a “majority” read concern or no read concern. Anything else will cause a server error.
Note that using a $project stage to remove any of the _id operationType or ns fields
will cause an error. The driver requires these fields to support resumability. For
more information on resumability, see the documentation for
ChangeStream
If the pipeline alters the structure of the returned events, the parsed type will need to be
changed via ChangeStream::with_type.
sourcepub async fn watch_with_session(
&self,
pipeline: impl IntoIterator<Item = Document>,
options: impl Into<Option<ChangeStreamOptions>>,
session: &mut ClientSession
) -> impl Future<Output = Result<SessionChangeStream<ChangeStreamEvent<Document>>, Error>>
pub async fn watch_with_session( &self, pipeline: impl IntoIterator<Item = Document>, options: impl Into<Option<ChangeStreamOptions>>, session: &mut ClientSession ) -> impl Future<Output = Result<SessionChangeStream<ChangeStreamEvent<Document>>, Error>>
Starts a new SessionChangeStream that receives events for all changes in the cluster
using the provided ClientSession. See Client::watch for more information.
Trait Implementations§
source§impl AbstractBots for MongoDb
impl AbstractBots for MongoDb
source§fn fetch_bot<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Bot>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_bot<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<Bot>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Fetch a bot by its id
source§fn fetch_bot_by_token<'life0, 'life1, 'async_trait>(
&'life0 self,
token: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Bot>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_bot_by_token<'life0, 'life1, 'async_trait>( &'life0 self, token: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<Bot>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Fetch a bot by its token
source§fn insert_bot<'life0, 'life1, 'async_trait>(
&'life0 self,
bot: &'life1 Bot
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn insert_bot<'life0, 'life1, 'async_trait>( &'life0 self, bot: &'life1 Bot ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Insert new bot into the database
source§fn update_bot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 str,
partial: &'life2 PartialBot,
remove: Vec<FieldsBot>
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn update_bot<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 str, partial: &'life2 PartialBot, remove: Vec<FieldsBot> ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,
Update bot with new information
source§fn delete_bot<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_bot<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Delete a bot from the database