[][src]Struct mongodb::sync::Collection

pub struct Collection { /* fields omitted */ }
This is supported on feature="sync" only.

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

impl Collection[src]

pub fn name(&self) -> &str[src]

This is supported on feature="sync" only.

Gets the name of the Collection.

pub fn namespace(&self) -> Namespace[src]

This is supported on feature="sync" 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".

pub fn selection_criteria(&self) -> Option<&SelectionCriteria>[src]

This is supported on feature="sync" only.

Gets the selection criteria of the Collection.

pub fn read_concern(&self) -> Option<&ReadConcern>[src]

This is supported on feature="sync" only.

Gets the read concern of the Collection.

pub fn write_concern(&self) -> Option<&WriteConcern>[src]

This is supported on feature="sync" only.

Gets the write concern of the Collection.

pub fn drop(
    &self,
    options: impl Into<Option<DropCollectionOptions>>
) -> Result<()>
[src]

This is supported on feature="sync" only.

Drops the collection, deleting all data, users, and indexes stored in it.

pub fn aggregate(
    &self,
    pipeline: impl IntoIterator<Item = Document>,
    options: impl Into<Option<AggregateOptions>>
) -> Result<Cursor>
[src]

This is supported on feature="sync" only.

Runs an aggregation operation.

See the documentation here for more information on aggregations.

pub fn estimated_document_count(
    &self,
    options: impl Into<Option<EstimatedDocumentCountOptions>>
) -> Result<i64>
[src]

This is supported on feature="sync" only.

Estimates the number of documents in the collection using collection metadata.

pub fn count_documents(
    &self,
    filter: impl Into<Option<Document>>,
    options: impl Into<Option<CountOptions>>
) -> Result<i64>
[src]

This is supported on feature="sync" 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 fn delete_many(
    &self,
    query: Document,
    options: impl Into<Option<DeleteOptions>>
) -> Result<DeleteResult>
[src]

This is supported on feature="sync" only.

Deletes all documents stored in the collection matching query.

pub fn delete_one(
    &self,
    query: Document,
    options: impl Into<Option<DeleteOptions>>
) -> Result<DeleteResult>
[src]

This is supported on feature="sync" 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 fn distinct(
    &self,
    field_name: &str,
    filter: impl Into<Option<Document>>,
    options: impl Into<Option<DistinctOptions>>
) -> Result<Vec<Bson>>
[src]

This is supported on feature="sync" only.

Finds the distinct values of the field specified by field_name across the collection.

pub fn find(
    &self,
    filter: impl Into<Option<Document>>,
    options: impl Into<Option<FindOptions>>
) -> Result<Cursor>
[src]

This is supported on feature="sync" only.

Finds the documents in the collection matching filter.

pub fn find_one(
    &self,
    filter: impl Into<Option<Document>>,
    options: impl Into<Option<FindOneOptions>>
) -> Result<Option<Document>>
[src]

This is supported on feature="sync" only.

Finds a single document in the collection matching filter.

pub fn find_one_and_delete(
    &self,
    filter: Document,
    options: impl Into<Option<FindOneAndDeleteOptions>>
) -> Result<Option<Document>>
[src]

This is supported on feature="sync" 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 fn find_one_and_replace(
    &self,
    filter: Document,
    replacement: Document,
    options: impl Into<Option<FindOneAndReplaceOptions>>
) -> Result<Option<Document>>
[src]

This is supported on feature="sync" 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 fn find_one_and_update(
    &self,
    filter: Document,
    update: impl Into<UpdateModifications>,
    options: impl Into<Option<FindOneAndUpdateOptions>>
) -> Result<Option<Document>>
[src]

This is supported on feature="sync" 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 fn insert_many(
    &self,
    docs: impl IntoIterator<Item = Document>,
    options: impl Into<Option<InsertManyOptions>>
) -> Result<InsertManyResult>
[src]

This is supported on feature="sync" only.

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.

pub fn insert_one(
    &self,
    doc: Document,
    options: impl Into<Option<InsertOneOptions>>
) -> Result<InsertOneResult>
[src]

This is supported on feature="sync" 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 fn replace_one(
    &self,
    query: Document,
    replacement: Document,
    options: impl Into<Option<ReplaceOptions>>
) -> Result<UpdateResult>
[src]

This is supported on feature="sync" 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 fn update_many(
    &self,
    query: Document,
    update: impl Into<UpdateModifications>,
    options: impl Into<Option<UpdateOptions>>
) -> Result<UpdateResult>
[src]

This is supported on feature="sync" 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 fn update_one(
    &self,
    query: Document,
    update: impl Into<UpdateModifications>,
    options: impl Into<Option<UpdateOptions>>
) -> Result<UpdateResult>
[src]

This is supported on feature="sync" 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.

Trait Implementations

impl Clone for Collection[src]

impl Debug for Collection[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,