pub struct Collection<T = Document>{ /* private fields */ }
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
.
Collection
uses std::sync::Arc
internally,
so it can safely be shared across threads. For example:
let coll = client.database("items").collection("in_stock");
for i in 0..5 {
let coll_ref = coll.clone();
std::thread::spawn(move || {
// Perform operations with `coll_ref`. For example:
coll_ref.insert_one(doc! { "x": i }, None);
});
}
Implementations§
Source§impl<T> Collection<T>
impl<T> Collection<T>
Sourcepub fn clone_with_type<U>(&self) -> Collection<U>
pub fn clone_with_type<U>(&self) -> Collection<U>
Gets a clone of the Collection
with a different type U
.
Sourcepub fn namespace(&self) -> Namespace
pub fn namespace(&self) -> Namespace
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”.
Sourcepub fn selection_criteria(&self) -> Option<&SelectionCriteria>
pub fn selection_criteria(&self) -> Option<&SelectionCriteria>
Gets the selection criteria of the Collection
.
Sourcepub fn read_concern(&self) -> Option<&ReadConcern>
pub fn read_concern(&self) -> Option<&ReadConcern>
Gets the read concern of the Collection
.
Sourcepub fn write_concern(&self) -> Option<&WriteConcern>
pub fn write_concern(&self) -> Option<&WriteConcern>
Gets the write concern of the Collection
.
Sourcepub fn drop(
&self,
options: impl Into<Option<DropCollectionOptions>>,
) -> Result<(), Error>
pub fn drop( &self, options: impl Into<Option<DropCollectionOptions>>, ) -> Result<(), Error>
Drops the collection, deleting all data, users, and indexes stored in it.
Sourcepub fn aggregate(
&self,
pipeline: impl IntoIterator<Item = Document>,
options: impl Into<Option<AggregateOptions>>,
) -> Result<Cursor, Error>
pub fn aggregate( &self, pipeline: impl IntoIterator<Item = Document>, options: impl Into<Option<AggregateOptions>>, ) -> Result<Cursor, Error>
Runs an aggregation operation.
See the documentation here for more information on aggregations.
Sourcepub fn estimated_document_count(
&self,
options: impl Into<Option<EstimatedDocumentCountOptions>>,
) -> Result<i64, Error>
pub fn estimated_document_count( &self, options: impl Into<Option<EstimatedDocumentCountOptions>>, ) -> Result<i64, Error>
Estimates the number of documents in the collection using collection metadata.
Sourcepub fn count_documents(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<CountOptions>>,
) -> Result<i64, Error>
pub fn count_documents( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<CountOptions>>, ) -> Result<i64, Error>
Gets the number of documents matching filter
.
Note that using Collection::estimated_document_count
is recommended instead of this method is most cases.
Sourcepub fn delete_many(
&self,
query: Document,
options: impl Into<Option<DeleteOptions>>,
) -> Result<DeleteResult, Error>
pub fn delete_many( &self, query: Document, options: impl Into<Option<DeleteOptions>>, ) -> Result<DeleteResult, Error>
Deletes all documents stored in the collection matching query
.
Sourcepub fn delete_one(
&self,
query: Document,
options: impl Into<Option<DeleteOptions>>,
) -> Result<DeleteResult, Error>
pub fn delete_one( &self, query: Document, options: impl Into<Option<DeleteOptions>>, ) -> Result<DeleteResult, Error>
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.
Sourcepub fn distinct(
&self,
field_name: &str,
filter: impl Into<Option<Document>>,
options: impl Into<Option<DistinctOptions>>,
) -> Result<Vec<Bson>, Error>
pub fn distinct( &self, field_name: &str, filter: impl Into<Option<Document>>, options: impl Into<Option<DistinctOptions>>, ) -> Result<Vec<Bson>, Error>
Finds the distinct values of the field specified by field_name
across the collection.
Sourcepub fn find(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOptions>>,
) -> Result<Cursor<T>, Error>
pub fn find( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<FindOptions>>, ) -> Result<Cursor<T>, Error>
Finds the documents in the collection matching filter
.
Sourcepub fn find_one(
&self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOneOptions>>,
) -> Result<Option<T>, Error>
pub fn find_one( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<FindOneOptions>>, ) -> Result<Option<T>, Error>
Finds a single document in the collection matching filter
.
Sourcepub fn find_one_and_delete(
&self,
filter: Document,
options: impl Into<Option<FindOneAndDeleteOptions>>,
) -> Result<Option<T>, Error>
pub fn find_one_and_delete( &self, filter: Document, options: impl Into<Option<FindOneAndDeleteOptions>>, ) -> Result<Option<T>, Error>
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.
Sourcepub fn find_one_and_replace(
&self,
filter: Document,
replacement: T,
options: impl Into<Option<FindOneAndReplaceOptions>>,
) -> Result<Option<T>, Error>
pub fn find_one_and_replace( &self, filter: Document, replacement: T, options: impl Into<Option<FindOneAndReplaceOptions>>, ) -> Result<Option<T>, Error>
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.
Sourcepub fn find_one_and_update(
&self,
filter: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<FindOneAndUpdateOptions>>,
) -> Result<Option<T>, Error>
pub fn find_one_and_update( &self, filter: Document, update: impl Into<UpdateModifications>, options: impl Into<Option<FindOneAndUpdateOptions>>, ) -> Result<Option<T>, Error>
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.
Sourcepub fn insert_many(
&self,
docs: impl IntoIterator<Item = T>,
options: impl Into<Option<InsertManyOptions>>,
) -> Result<InsertManyResult, Error>
pub fn insert_many( &self, docs: impl IntoIterator<Item = T>, options: impl Into<Option<InsertManyOptions>>, ) -> Result<InsertManyResult, Error>
Inserts the documents 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.
Sourcepub fn insert_one(
&self,
doc: T,
options: impl Into<Option<InsertOneOptions>>,
) -> Result<InsertOneResult, Error>
pub fn insert_one( &self, doc: T, options: impl Into<Option<InsertOneOptions>>, ) -> Result<InsertOneResult, Error>
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.
Sourcepub fn replace_one(
&self,
query: Document,
replacement: T,
options: impl Into<Option<ReplaceOptions>>,
) -> Result<UpdateResult, Error>
pub fn replace_one( &self, query: Document, replacement: T, options: impl Into<Option<ReplaceOptions>>, ) -> Result<UpdateResult, Error>
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.
Sourcepub fn update_many(
&self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>,
) -> Result<UpdateResult, Error>
pub fn update_many( &self, query: Document, update: impl Into<UpdateModifications>, options: impl Into<Option<UpdateOptions>>, ) -> Result<UpdateResult, Error>
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.
Sourcepub fn update_one(
&self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>,
) -> Result<UpdateResult, Error>
pub fn update_one( &self, query: Document, update: impl Into<UpdateModifications>, options: impl Into<Option<UpdateOptions>>, ) -> Result<UpdateResult, Error>
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.
Trait Implementations§
Source§impl<T> Clone for Collection<T>
impl<T> Clone for Collection<T>
Source§fn clone(&self) -> Collection<T>
fn clone(&self) -> Collection<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more