[−][src]Struct mongodb::Collection
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 or async tasks. For example:
let coll = client.database("items").collection("in_stock"); for i in 0..5 { let coll_ref = coll.clone(); task::spawn(async move { // Perform operations with `coll_ref`. For example: coll_ref.insert_one(doc! { "x": i }, None).await; }); }
Methods
impl Collection[src]
pub fn name(&self) -> &str[src]
Gets the name of the Collection.
pub fn namespace(&self) -> Namespace[src]
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".
pub fn selection_criteria(&self) -> Option<&SelectionCriteria>[src]
Gets the selection criteria of the Collection.
pub fn read_concern(&self) -> Option<&ReadConcern>[src]
Gets the read concern of the Collection.
pub fn write_concern(&self) -> Option<&WriteConcern>[src]
Gets the write concern of the Collection.
pub async fn drop<'_>(
&'_ self,
options: impl Into<Option<DropCollectionOptions>>
) -> Result<()>[src]
&'_ self,
options: impl Into<Option<DropCollectionOptions>>
) -> Result<()>
Drops the collection, deleting all data, users, and indexes stored in it.
pub async fn aggregate<'_>(
&'_ self,
pipeline: impl IntoIterator<Item = Document>,
options: impl Into<Option<AggregateOptions>>
) -> Result<Cursor>[src]
&'_ self,
pipeline: impl IntoIterator<Item = Document>,
options: impl Into<Option<AggregateOptions>>
) -> Result<Cursor>
Runs an aggregation operation.
See the documentation here for more information on aggregations.
pub async fn estimated_document_count<'_>(
&'_ self,
options: impl Into<Option<EstimatedDocumentCountOptions>>
) -> Result<i64>[src]
&'_ self,
options: impl Into<Option<EstimatedDocumentCountOptions>>
) -> Result<i64>
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<i64>[src]
&'_ self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<CountOptions>>
) -> Result<i64>
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 delete_many<'_>(
&'_ self,
query: Document,
options: impl Into<Option<DeleteOptions>>
) -> Result<DeleteResult>[src]
&'_ self,
query: Document,
options: impl Into<Option<DeleteOptions>>
) -> Result<DeleteResult>
Deletes all documents stored in the collection matching query.
pub async fn delete_one<'_>(
&'_ self,
query: Document,
options: impl Into<Option<DeleteOptions>>
) -> Result<DeleteResult>[src]
&'_ self,
query: Document,
options: impl Into<Option<DeleteOptions>>
) -> Result<DeleteResult>
Deletes up to one document found matching query.
pub async fn distinct<'_, '_>(
&'_ self,
field_name: &'_ str,
filter: impl Into<Option<Document>>,
options: impl Into<Option<DistinctOptions>>
) -> Result<Vec<Bson>>[src]
&'_ self,
field_name: &'_ str,
filter: impl Into<Option<Document>>,
options: impl Into<Option<DistinctOptions>>
) -> Result<Vec<Bson>>
Finds the distinct values of the field specified by field_name across the collection.
pub async fn find<'_>(
&'_ self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOptions>>
) -> Result<Cursor>[src]
&'_ self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOptions>>
) -> Result<Cursor>
Finds the documents in the collection matching filter.
pub async fn find_one<'_>(
&'_ self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOneOptions>>
) -> Result<Option<Document>>[src]
&'_ self,
filter: impl Into<Option<Document>>,
options: impl Into<Option<FindOneOptions>>
) -> Result<Option<Document>>
Finds a single document in the collection matching filter.
pub async fn find_one_and_delete<'_>(
&'_ self,
filter: Document,
options: impl Into<Option<FindOneAndDeleteOptions>>
) -> Result<Option<Document>>[src]
&'_ self,
filter: Document,
options: impl Into<Option<FindOneAndDeleteOptions>>
) -> Result<Option<Document>>
Atomically finds up to one document in the collection matching filter and deletes it.
pub async fn find_one_and_replace<'_>(
&'_ self,
filter: Document,
replacement: Document,
options: impl Into<Option<FindOneAndReplaceOptions>>
) -> Result<Option<Document>>[src]
&'_ self,
filter: Document,
replacement: Document,
options: impl Into<Option<FindOneAndReplaceOptions>>
) -> Result<Option<Document>>
Atomically finds up to one document in the collection matching filter and replaces it with
replacement.
pub async fn find_one_and_update<'_>(
&'_ self,
filter: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<FindOneAndUpdateOptions>>
) -> Result<Option<Document>>[src]
&'_ self,
filter: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<FindOneAndUpdateOptions>>
) -> Result<Option<Document>>
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+.
pub async fn insert_many<'_>(
&'_ self,
docs: impl IntoIterator<Item = Document>,
options: impl Into<Option<InsertManyOptions>>
) -> Result<InsertManyResult>[src]
&'_ self,
docs: impl IntoIterator<Item = Document>,
options: impl Into<Option<InsertManyOptions>>
) -> Result<InsertManyResult>
Inserts the documents in docs into the collection.
pub async fn insert_one<'_>(
&'_ self,
doc: Document,
options: impl Into<Option<InsertOneOptions>>
) -> Result<InsertOneResult>[src]
&'_ self,
doc: Document,
options: impl Into<Option<InsertOneOptions>>
) -> Result<InsertOneResult>
Inserts doc into the collection.
pub async fn replace_one<'_>(
&'_ self,
query: Document,
replacement: Document,
options: impl Into<Option<ReplaceOptions>>
) -> Result<UpdateResult>[src]
&'_ self,
query: Document,
replacement: Document,
options: impl Into<Option<ReplaceOptions>>
) -> Result<UpdateResult>
Replaces up to one document matching query in the collection with replacement.
pub async fn update_many<'_>(
&'_ self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>
) -> Result<UpdateResult>[src]
&'_ self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>
) -> Result<UpdateResult>
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_one<'_>(
&'_ self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>
) -> Result<UpdateResult>[src]
&'_ self,
query: Document,
update: impl Into<UpdateModifications>,
options: impl Into<Option<UpdateOptions>>
) -> Result<UpdateResult>
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.
Trait Implementations
impl Clone for Collection[src]
fn clone(&self) -> Collection[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Debug for Collection[src]
Auto Trait Implementations
impl !RefUnwindSafe for Collection
impl Send for Collection
impl Sync for Collection
impl Unpin for Collection
impl !UnwindSafe for Collection
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,