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 Collections 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.

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.

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.

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.

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.

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.

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.

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

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.

Drops the collection, deleting all data and indexes stored in it 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.

Runs an aggregation operation.

See the documentation here for more information on aggregations.

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.

Runs an aggregation operation using the provided ClientSession.

See the documentation here for more information on aggregations.

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.

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

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.

Gets the number of documents matching filter.

Note that using Collection::estimated_document_count is recommended instead of this method is most cases.

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.

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.

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.

Creates the given index on this 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.

Creates the given index 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.

Creates the given indexes on this 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.

Creates the given 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.

Deletes all documents stored in the collection matching query.

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.

Deletes all documents stored in the collection matching query 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.

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.

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.

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.

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.

Finds the distinct values of the field specified by field_name across 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.

Finds the distinct values of the field specified by field_name across the 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.

Drops the index specified by name from this 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.

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.

Drops all indexes associated with this 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.

Drops all indexes associated with 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.

Lists all indexes on this 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.

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.

Gets the names of all indexes on 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.

Gets the names of all indexes on the 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.

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.

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.

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.

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.

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.

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.

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.

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.

Finds the documents in the collection matching filter.

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.

Finds the documents in the collection matching filter 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.

Finds a single document in the collection matching filter.

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.

Finds a single document in the collection matching filter 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.