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
source§impl AbstractMigrations for MongoDb
impl AbstractMigrations for MongoDb
source§impl AbstractUsers for MongoDb
impl AbstractUsers for MongoDb
impl AbstractDatabase for MongoDb
Auto Trait Implementations§
impl !RefUnwindSafe for MongoDb
impl Send for MongoDb
impl Sync for MongoDb
impl Unpin for MongoDb
impl !UnwindSafe for MongoDb
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where &'a Self: for<'a> IntoIterator,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,
self, then passes self.as_mut() into the pipe
function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
.tap_ref_mut() only in debug builds, and is erased in release
builds.