Struct mongodb::Client [−][src]
pub struct Client { /* fields omitted */ }Expand description
This is the main entry point for the API. A Client is used to connect to a MongoDB cluster.
By default, it will monitor the topology of the cluster, keeping track of any changes, such
as servers being added or removed.
Client uses std::sync::Arc internally,
so it can safely be shared across threads or async tasks. For example:
let client = Client::with_uri_str("mongodb://example.com").await?; for i in 0..5 { let client_ref = client.clone(); task::spawn(async move { let collection = client_ref.database("items").collection::<Document>(&format!("coll{}", i)); // Do something with the collection }); }
TCP Keepalive
TCP keepalive is enabled by default with tcp_keepalive_time set to 120 seconds. The
driver does not set tcp_keepalive_intvl. See the
MongoDB Diagnostics FAQ keepalive section
for instructions on setting these values at the system level.
Implementations
Creates a new Client connected to the cluster specified by uri. uri must be a valid
MongoDB connection string.
See the documentation on
ClientOptions::parse for more details.
Creates a new Client connected to the cluster specified by options.
Gets the default selection criteria the Client uses for operations..
Gets the default read concern the Client uses for operations.
Gets the default write concern the Client uses for operations.
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.
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.
pub async fn list_databases(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<ListDatabasesOptions>>
) -> Result<Vec<DatabaseSpecification>>
pub async fn list_databases(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<ListDatabasesOptions>>
) -> Result<Vec<DatabaseSpecification>>
Gets information about each database present in the cluster the Client is connected to.
pub async fn list_databases_with_session(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<ListDatabasesOptions>>,
session: &mut ClientSession
) -> Result<Vec<DatabaseSpecification>>
pub async fn list_databases_with_session(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<ListDatabasesOptions>>,
session: &mut ClientSession
) -> Result<Vec<DatabaseSpecification>>
Gets information about each database present in the cluster the Client is connected to
using the provided ClientSession.
Gets the names of the databases present in the cluster the Client is connected to.
Starts a new ClientSession.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Client
impl !UnwindSafe for Client
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
type Output = T
type Output = T
Should always be Self