Struct mongodb::Collection [−][src]
pub struct Collection<T> { /* fields omitted */ }
Expand description
Collection
is the client-side abstraction of a MongoDB Collection. It can be used to
perform collection-level operations such as CRUD operations. A Collection
can be obtained
through a Database
by calling either
Database::collection
or
Database::collection_with_options
.
A Collection
can be parameterized with any type that implements the
Serialize
and Deserialize
traits from the serde
crate. This includes but
is not limited to just Document
. The various methods that accept or return instances of the
documents in the collection will accept/return instances of the generic parameter (e.g.
Collection::insert_one
accepts it as an argument, Collection::find_one
returns an
Option
of it). It is recommended to define types that model your data which you can
parameterize your Collection
s with instead of Document
, since doing so eliminates a lot of
boilerplate deserialization code and is often more performant.
Collection
uses std::sync::Arc
internally,
so it can safely be shared across threads or async tasks.
Example
use serde::{Deserialize, Serialize};
/// Define a type that models our data.
#[derive(Clone, Debug, Deserialize, Serialize)]
struct Item {
id: u32,
}
// Parameterize our collection with the model.
let coll = client.database("items").collection::<Item>("in_stock");
for i in 0..5 {
let coll_ref = coll.clone();
// Spawn several tasks that operate on the same collection concurrently.
task::spawn(async move {
// Perform operations with `coll_ref` that work with directly our model.
coll_ref.insert_one(Item { id: i }, None).await;
});
}
Implementations
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Gets a clone of the Collection
with a different type U
.
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Gets the name of the Collection
.
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Gets the namespace of the Collection
.
The namespace of a MongoDB collection is the concatenation of the name of the database containing it, the ‘.’ character, and the name of the collection itself. For example, if a collection named “bar” is created in a database named “foo”, the namespace of the collection is “foo.bar”.
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Gets the selection criteria of the Collection
.
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Gets the read concern of the Collection
.
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Gets the write concern of the Collection
.
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Drops the collection, deleting all data and indexes stored in it.
pub async fn drop_with_session(
&self,
options: impl Into<Option<DropCollectionOptions>>,
session: &mut ClientSession
) -> Result<()>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn drop_with_session(
&self,
options: impl Into<Option<DropCollectionOptions>>,
session: &mut ClientSession
) -> Result<()>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Drops the collection, deleting all data and indexes stored in it using the provided
ClientSession
.
pub async fn aggregate(
&self,
pipeline: impl IntoIterator<Item = Document>,
options: impl Into<Option<AggregateOptions>>
) -> Result<Cursor<Document>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn aggregate(
&self,
pipeline: impl IntoIterator<Item = Document>,
options: impl Into<Option<AggregateOptions>>
) -> Result<Cursor<Document>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Runs an aggregation operation.
See the documentation here for more information on aggregations.
pub async fn aggregate_with_session(
&self,
pipeline: impl IntoIterator<Item = Document>,
options: impl Into<Option<AggregateOptions>>,
session: &mut ClientSession
) -> Result<SessionCursor<Document>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn aggregate_with_session(
&self,
pipeline: impl IntoIterator<Item = Document>,
options: impl Into<Option<AggregateOptions>>,
session: &mut ClientSession
) -> Result<SessionCursor<Document>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Runs an aggregation operation using the provided ClientSession
.
See the documentation here for more information on aggregations.
pub async fn estimated_document_count(
&self,
options: impl Into<Option<EstimatedDocumentCountOptions>>
) -> Result<u64>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn estimated_document_count(
&self,
options: impl Into<Option<EstimatedDocumentCountOptions>>
) -> Result<u64>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Estimates the number of documents in the collection using collection metadata.
pub async fn count_documents(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<CountOptions>>
) -> Result<u64>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn count_documents(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<CountOptions>>
) -> Result<u64>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Gets the number of documents matching filter
.
Note that using Collection::estimated_document_count
is recommended instead of this method is most cases.
pub async fn count_documents_with_session(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<CountOptions>>,
session: &mut ClientSession
) -> Result<u64>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn count_documents_with_session(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<CountOptions>>,
session: &mut ClientSession
) -> Result<u64>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Gets the number of documents matching filter
using the provided ClientSession
.
Note that using Collection::estimated_document_count
is recommended instead of this method is most cases.
pub async fn create_index(
&self,
index: IndexModel,
options: impl Into<Option<CreateIndexOptions>>
) -> Result<CreateIndexResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn create_index(
&self,
index: IndexModel,
options: impl Into<Option<CreateIndexOptions>>
) -> Result<CreateIndexResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Creates the given index on this collection.
pub async fn create_index_with_session(
&self,
index: IndexModel,
options: impl Into<Option<CreateIndexOptions>>,
session: &mut ClientSession
) -> Result<CreateIndexResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn create_index_with_session(
&self,
index: IndexModel,
options: impl Into<Option<CreateIndexOptions>>,
session: &mut ClientSession
) -> Result<CreateIndexResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Creates the given index on this collection using the provided ClientSession
.
pub async fn create_indexes(
&self,
indexes: impl IntoIterator<Item = IndexModel>,
options: impl Into<Option<CreateIndexOptions>>
) -> Result<CreateIndexesResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn create_indexes(
&self,
indexes: impl IntoIterator<Item = IndexModel>,
options: impl Into<Option<CreateIndexOptions>>
) -> Result<CreateIndexesResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Creates the given indexes on this collection.
pub async fn create_indexes_with_session(
&self,
indexes: impl IntoIterator<Item = IndexModel>,
options: impl Into<Option<CreateIndexOptions>>,
session: &mut ClientSession
) -> Result<CreateIndexesResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn create_indexes_with_session(
&self,
indexes: impl IntoIterator<Item = IndexModel>,
options: impl Into<Option<CreateIndexOptions>>,
session: &mut ClientSession
) -> Result<CreateIndexesResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Creates the given indexes on this collection using the provided ClientSession
.
pub async fn delete_many(
&self,
query: Document,
options: impl Into<Option<DeleteOptions>>
) -> Result<DeleteResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn delete_many(
&self,
query: Document,
options: impl Into<Option<DeleteOptions>>
) -> Result<DeleteResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Deletes all documents stored in the collection matching query
.
pub async fn delete_many_with_session(
&self,
query: Document,
options: impl Into<Option<DeleteOptions>>,
session: &mut ClientSession
) -> Result<DeleteResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn delete_many_with_session(
&self,
query: Document,
options: impl Into<Option<DeleteOptions>>,
session: &mut ClientSession
) -> Result<DeleteResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Deletes all documents stored in the collection matching query
using the provided
ClientSession
.
pub async fn delete_one(
&self,
query: Document,
options: impl Into<Option<DeleteOptions>>
) -> Result<DeleteResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn delete_one(
&self,
query: Document,
options: impl Into<Option<DeleteOptions>>
) -> Result<DeleteResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Deletes up to one document found matching query
.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn delete_one_with_session(
&self,
query: Document,
options: impl Into<Option<DeleteOptions>>,
session: &mut ClientSession
) -> Result<DeleteResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn delete_one_with_session(
&self,
query: Document,
options: impl Into<Option<DeleteOptions>>,
session: &mut ClientSession
) -> Result<DeleteResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Deletes up to one document found matching query
using the provided ClientSession
.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn distinct(
&self,
field_name: impl AsRef<str>,
filter: impl Into<Option<Document>>,
options: impl Into<Option<DistinctOptions>>
) -> Result<Vec<Bson>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn distinct(
&self,
field_name: impl AsRef<str>,
filter: impl Into<Option<Document>>,
options: impl Into<Option<DistinctOptions>>
) -> Result<Vec<Bson>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Finds the distinct values of the field specified by field_name
across the collection.
pub async fn distinct_with_session(
&self,
field_name: impl AsRef<str>,
filter: impl Into<Option<Document>>,
options: impl Into<Option<DistinctOptions>>,
session: &mut ClientSession
) -> Result<Vec<Bson>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn distinct_with_session(
&self,
field_name: impl AsRef<str>,
filter: impl Into<Option<Document>>,
options: impl Into<Option<DistinctOptions>>,
session: &mut ClientSession
) -> Result<Vec<Bson>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Finds the distinct values of the field specified by field_name
across the collection using
the provided ClientSession
.
pub async fn drop_index(
&self,
name: impl AsRef<str>,
options: impl Into<Option<DropIndexOptions>>
) -> Result<()>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn drop_index(
&self,
name: impl AsRef<str>,
options: impl Into<Option<DropIndexOptions>>
) -> Result<()>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Drops the index specified by name
from this collection.
pub async fn drop_index_with_session(
&self,
name: impl AsRef<str>,
options: impl Into<Option<DropIndexOptions>>,
session: &mut ClientSession
) -> Result<()>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn drop_index_with_session(
&self,
name: impl AsRef<str>,
options: impl Into<Option<DropIndexOptions>>,
session: &mut ClientSession
) -> Result<()>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Drops the index specified by name
from this collection using the provided ClientSession
.
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Drops all indexes associated with this collection.
pub async fn drop_indexes_with_session(
&self,
options: impl Into<Option<DropIndexOptions>>,
session: &mut ClientSession
) -> Result<()>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn drop_indexes_with_session(
&self,
options: impl Into<Option<DropIndexOptions>>,
session: &mut ClientSession
) -> Result<()>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Drops all indexes associated with this collection using the provided ClientSession
.
pub async fn list_indexes(
&self,
options: impl Into<Option<ListIndexesOptions>>
) -> Result<Cursor<IndexModel>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn list_indexes(
&self,
options: impl Into<Option<ListIndexesOptions>>
) -> Result<Cursor<IndexModel>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Lists all indexes on this collection.
pub async fn list_indexes_with_session(
&self,
options: impl Into<Option<ListIndexesOptions>>,
session: &mut ClientSession
) -> Result<SessionCursor<IndexModel>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn list_indexes_with_session(
&self,
options: impl Into<Option<ListIndexesOptions>>,
session: &mut ClientSession
) -> Result<SessionCursor<IndexModel>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Lists all indexes on this collection using the provided ClientSession
.
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Gets the names of all indexes on the collection.
pub async fn list_index_names_with_session(
&self,
session: &mut ClientSession
) -> Result<Vec<String>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn list_index_names_with_session(
&self,
session: &mut ClientSession
) -> Result<Vec<String>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Gets the names of all indexes on the collection using the provided ClientSession
.
pub async fn update_many(
&self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>
) -> Result<UpdateResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn update_many(
&self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>
) -> Result<UpdateResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Updates all documents matching query
in the collection.
Both Document
and Vec<Document>
implement Into<UpdateModifications>
, so either can be
passed in place of constructing the enum case. Note: pipeline updates are only supported
in MongoDB 4.2+. See the official MongoDB
documentation for more information on specifying updates.
pub async fn update_many_with_session(
&self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>,
session: &mut ClientSession
) -> Result<UpdateResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn update_many_with_session(
&self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>,
session: &mut ClientSession
) -> Result<UpdateResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Updates all documents matching query
in the collection using the provided ClientSession
.
Both Document
and Vec<Document>
implement Into<UpdateModifications>
, so either can be
passed in place of constructing the enum case. Note: pipeline updates are only supported
in MongoDB 4.2+. See the official MongoDB
documentation for more information on specifying updates.
pub async fn update_one(
&self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>
) -> Result<UpdateResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn update_one(
&self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>
) -> Result<UpdateResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Updates up to one document matching query
in the collection.
Both Document
and Vec<Document>
implement Into<UpdateModifications>
, so either can be
passed in place of constructing the enum case. Note: pipeline updates are only supported
in MongoDB 4.2+. See the official MongoDB
documentation for more information on specifying updates.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn update_one_with_session(
&self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>,
session: &mut ClientSession
) -> Result<UpdateResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn update_one_with_session(
&self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>,
session: &mut ClientSession
) -> Result<UpdateResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Updates up to one document matching query
in the collection using the provided
ClientSession
.
Both Document
and Vec<Document>
implement Into<UpdateModifications>
, so either can be
passed in place of constructing the enum case. Note: pipeline updates are only supported
in MongoDB 4.2+. See the official MongoDB
documentation for more information on specifying updates.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn find(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOptions>>
) -> Result<Cursor<T>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn find(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOptions>>
) -> Result<Cursor<T>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Finds the documents in the collection matching filter
.
pub async fn find_with_session(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOptions>>,
session: &mut ClientSession
) -> Result<SessionCursor<T>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn find_with_session(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOptions>>,
session: &mut ClientSession
) -> Result<SessionCursor<T>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Finds the documents in the collection matching filter
using the provided ClientSession
.
pub async fn find_one(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOneOptions>>
) -> Result<Option<T>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn find_one(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOneOptions>>
) -> Result<Option<T>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Finds a single document in the collection matching filter
.
pub async fn find_one_with_session(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOneOptions>>,
session: &mut ClientSession
) -> Result<Option<T>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn find_one_with_session(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOneOptions>>,
session: &mut ClientSession
) -> Result<Option<T>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Finds a single document in the collection matching filter
using the provided
ClientSession
.
pub async fn find_one_and_delete(
&self,
filter: Document,
options: impl Into<Option<FindOneAndDeleteOptions>>
) -> Result<Option<T>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn find_one_and_delete(
&self,
filter: Document,
options: impl Into<Option<FindOneAndDeleteOptions>>
) -> Result<Option<T>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Atomically finds up to one document in the collection matching filter
and deletes it.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn find_one_and_delete_with_session(
&self,
filter: Document,
options: impl Into<Option<FindOneAndDeleteOptions>>,
session: &mut ClientSession
) -> Result<Option<T>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn find_one_and_delete_with_session(
&self,
filter: Document,
options: impl Into<Option<FindOneAndDeleteOptions>>,
session: &mut ClientSession
) -> Result<Option<T>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Atomically finds up to one document in the collection matching filter
and deletes it using
the provided ClientSession
.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn find_one_and_update(
&self,
filter: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<FindOneAndUpdateOptions>>
) -> Result<Option<T>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn find_one_and_update(
&self,
filter: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<FindOneAndUpdateOptions>>
) -> Result<Option<T>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Atomically finds up to one document in the collection matching filter
and updates it.
Both Document
and Vec<Document>
implement Into<UpdateModifications>
, so either can be
passed in place of constructing the enum case. Note: pipeline updates are only supported
in MongoDB 4.2+.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn find_one_and_update_with_session(
&self,
filter: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<FindOneAndUpdateOptions>>,
session: &mut ClientSession
) -> Result<Option<T>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn find_one_and_update_with_session(
&self,
filter: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<FindOneAndUpdateOptions>>,
session: &mut ClientSession
) -> Result<Option<T>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Atomically finds up to one document in the collection matching filter
and updates it using
the provided ClientSession
. Both Document
and Vec<Document>
implement
Into<UpdateModifications>
, so either can be passed in place of constructing the enum
case. Note: pipeline updates are only supported in MongoDB 4.2+.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn find_one_and_replace(
&self,
filter: Document,
replacement: impl Borrow<T>,
options: impl Into<Option<FindOneAndReplaceOptions>>
) -> Result<Option<T>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn find_one_and_replace(
&self,
filter: Document,
replacement: impl Borrow<T>,
options: impl Into<Option<FindOneAndReplaceOptions>>
) -> Result<Option<T>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Atomically finds up to one document in the collection matching filter
and replaces it with
replacement
.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn find_one_and_replace_with_session(
&self,
filter: Document,
replacement: impl Borrow<T>,
options: impl Into<Option<FindOneAndReplaceOptions>>,
session: &mut ClientSession
) -> Result<Option<T>>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn find_one_and_replace_with_session(
&self,
filter: Document,
replacement: impl Borrow<T>,
options: impl Into<Option<FindOneAndReplaceOptions>>,
session: &mut ClientSession
) -> Result<Option<T>>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Atomically finds up to one document in the collection matching filter
and replaces it with
replacement
using the provided ClientSession
.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn insert_many(
&self,
docs: impl IntoIterator<Item = impl Borrow<T>>,
options: impl Into<Option<InsertManyOptions>>
) -> Result<InsertManyResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn insert_many(
&self,
docs: impl IntoIterator<Item = impl Borrow<T>>,
options: impl Into<Option<InsertManyOptions>>
) -> Result<InsertManyResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Inserts the data in docs
into the collection.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn insert_many_with_session(
&self,
docs: impl IntoIterator<Item = impl Borrow<T>>,
options: impl Into<Option<InsertManyOptions>>,
session: &mut ClientSession
) -> Result<InsertManyResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn insert_many_with_session(
&self,
docs: impl IntoIterator<Item = impl Borrow<T>>,
options: impl Into<Option<InsertManyOptions>>,
session: &mut ClientSession
) -> Result<InsertManyResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Inserts the data in docs
into the collection using the provided ClientSession
.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn insert_one(
&self,
doc: impl Borrow<T>,
options: impl Into<Option<InsertOneOptions>>
) -> Result<InsertOneResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn insert_one(
&self,
doc: impl Borrow<T>,
options: impl Into<Option<InsertOneOptions>>
) -> Result<InsertOneResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Inserts doc
into the collection.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn insert_one_with_session(
&self,
doc: impl Borrow<T>,
options: impl Into<Option<InsertOneOptions>>,
session: &mut ClientSession
) -> Result<InsertOneResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn insert_one_with_session(
&self,
doc: impl Borrow<T>,
options: impl Into<Option<InsertOneOptions>>,
session: &mut ClientSession
) -> Result<InsertOneResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Inserts doc
into the collection using the provided ClientSession
.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn replace_one(
&self,
query: Document,
replacement: impl Borrow<T>,
options: impl Into<Option<ReplaceOptions>>
) -> Result<UpdateResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn replace_one(
&self,
query: Document,
replacement: impl Borrow<T>,
options: impl Into<Option<ReplaceOptions>>
) -> Result<UpdateResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Replaces up to one document matching query
in the collection with replacement
.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
pub async fn replace_one_with_session(
&self,
query: Document,
replacement: impl Borrow<T>,
options: impl Into<Option<ReplaceOptions>>,
session: &mut ClientSession
) -> Result<UpdateResult>
This is supported on crate feature tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.
pub async fn replace_one_with_session(
&self,
query: Document,
replacement: impl Borrow<T>,
options: impl Into<Option<ReplaceOptions>>,
session: &mut ClientSession
) -> Result<UpdateResult>
tokio-runtime
and non-crate feature async-std-runtime
, or non-crate feature tokio-runtime
and crate feature async-std-runtime
only.Replaces up to one document matching query
in the collection with replacement
using the
provided ClientSession
.
This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.
Trait Implementations
Auto Trait Implementations
impl<T> !RefUnwindSafe for Collection<T>
impl<T> Send for Collection<T> where
T: Send,
impl<T> Sync for Collection<T> where
T: Sync,
impl<T> Unpin for Collection<T> where
T: Unpin,
impl<T> !UnwindSafe for Collection<T>
Blanket Implementations
Mutably borrows from an owned value. Read more