Action

Trait Action 

Source
pub trait Action: Sealed + IntoFuture {
    // Provided method
    fn optional<Value>(
        self,
        value: Option<Value>,
        f: impl FnOnce(Self, Value) -> Self,
    ) -> Self
       where Self: Sized { ... }
}
Expand description

A pending action to execute on the server. The action can be configured via chained methods and executed via await (or run if using the sync client).

Provided Methods§

Source

fn optional<Value>( self, value: Option<Value>, f: impl FnOnce(Self, Value) -> Self, ) -> Self
where Self: Sized,

If the value is Some, call the provided function on self. Convenient for chained updates with values that need to be set conditionally. For example:

use mongodb::action::Action;
async fn list_my_collections(client: &Client, filter: Option<Document>) -> Result<Vec<String>> {
    client.database("my_db")
        .list_collection_names()
        .optional(filter, |a, f| a.filter(f))
        .await
}

Implementors§

Source§

impl Action for ParseConnectionString

Source§

impl Action for Shutdown

Source§

impl<'a> Action for qm_mongodb::action::gridfs::Delete<'a>

Source§

impl<'a> Action for DeleteByName<'a>

Source§

impl<'a> Action for Drop<'a>

Source§

impl<'a> Action for qm_mongodb::action::gridfs::Find<'a>

Source§

impl<'a> Action for qm_mongodb::action::gridfs::FindOne<'a>

Source§

impl<'a> Action for OpenDownloadStream<'a>

Source§

impl<'a> Action for OpenDownloadStreamByName<'a>

Source§

impl<'a> Action for OpenUploadStream<'a>

Source§

impl<'a> Action for Rename<'a>

Source§

impl<'a> Action for RenameByName<'a>

Source§

impl<'a> Action for AbortTransaction<'a>

Source§

impl<'a> Action for BulkWrite<'a, SummaryBulkWriteResult>

Source§

impl<'a> Action for BulkWrite<'a, VerboseBulkWriteResult>

Source§

impl<'a> Action for CommitTransaction<'a>

Source§

impl<'a> Action for CountDocuments<'a>

Source§

impl<'a> Action for CreateCollection<'a>

Source§

impl<'a> Action for CreateIndex<'a>

Source§

impl<'a> Action for CreateIndex<'a, Multiple>

Source§

impl<'a> Action for CreateSearchIndex<'a, Multiple>

Source§

impl<'a> Action for CreateSearchIndex<'a, Single>

Source§

impl<'a> Action for qm_mongodb::action::Delete<'a>

Source§

impl<'a> Action for Distinct<'a>

Source§

impl<'a> Action for DropCollection<'a>

Source§

impl<'a> Action for DropDatabase<'a>

Source§

impl<'a> Action for DropIndex<'a>

Source§

impl<'a> Action for DropSearchIndex<'a>

Source§

impl<'a> Action for EstimatedDocumentCount<'a>

Source§

impl<'a> Action for InsertMany<'a>

Source§

impl<'a> Action for InsertOne<'a>

Source§

impl<'a> Action for ListCollections<'a>

Source§

impl<'a> Action for ListCollections<'a, ListNames>

Source§

impl<'a> Action for ListCollections<'a, ListNames, ExplicitSession<'a>>

Source§

impl<'a> Action for ListCollections<'a, ListSpecifications, ExplicitSession<'a>>

Source§

impl<'a> Action for ListDatabases<'a>

Source§

impl<'a> Action for ListDatabases<'a, ListNames>

Source§

impl<'a> Action for ListIndexes<'a>

Source§

impl<'a> Action for ListIndexes<'a, ListNames>

Source§

impl<'a> Action for ListIndexes<'a, ListNames, ExplicitSession<'a>>

Source§

impl<'a> Action for ListIndexes<'a, ListSpecifications, ExplicitSession<'a>>

Source§

impl<'a> Action for ListSearchIndexes<'a>

Source§

impl<'a> Action for ReplaceOne<'a>

Source§

impl<'a> Action for RunCommand<'a>

Source§

impl<'a> Action for RunCursorCommand<'a>

Source§

impl<'a> Action for RunCursorCommand<'a, ExplicitSession<'a>>

Source§

impl<'a> Action for StartSession<'a>

Source§

impl<'a> Action for StartTransaction<&'a mut ClientSession>

Source§

impl<'a> Action for Update<'a>

Source§

impl<'a> Action for UpdateSearchIndex<'a>

Source§

impl<'a> Action for WarmConnectionPool<'a>

Source§

impl<'a, T> Action for Aggregate<'a, ExplicitSession<'a>, T>

Source§

impl<'a, T> Action for Aggregate<'a, ImplicitSession, T>

Source§

impl<'a, T> Action for qm_mongodb::action::Find<'a, T>
where T: Send + Sync,

Source§

impl<'a, T> Action for qm_mongodb::action::Find<'a, T, ExplicitSession<'a>>
where T: Send + Sync,

Source§

impl<'a, T> Action for qm_mongodb::action::FindOne<'a, T>
where T: DeserializeOwned + Send + Sync,

Source§

impl<'a, T> Action for FindOneAndDelete<'a, T>
where T: DeserializeOwned + Send + Sync,

Source§

impl<'a, T> Action for FindOneAndReplace<'a, T>
where T: DeserializeOwned + Send + Sync,

Source§

impl<'a, T> Action for FindOneAndUpdate<'a, T>
where T: DeserializeOwned + Send + Sync,

Source§

impl<'a, T> Action for Watch<'a, T>

Source§

impl<'a, T> Action for Watch<'a, T, ExplicitSession<'a>>