Struct mongodb::coll::Collection
[−]
[src]
pub struct Collection { pub db: Database, pub namespace: String, // some fields omitted }
Interfaces with a MongoDB collection.
Fields
db: Database
A reference to the database that spawned this collection.
namespace: String
The namespace of this collection, formatted as db_name.coll_name.
Methods
impl Collection
[src]
fn new(db: Database, name: &str, create: bool, read_preference: Option<ReadPreference>, write_concern: Option<WriteConcern>) -> Collection
Creates a collection representation with optional read and write controls.
If create
is specified, the collection will be explicitly created in the database.
fn get_req_id(&self) -> i32
Returns a unique operational request id.
fn name(&self) -> String
Extracts the collection name from the namespace. If the namespace is invalid, this method will panic.
fn drop(&self) -> Result<()>
Permanently deletes the collection from the database.
fn aggregate(&self, pipeline: Vec<Document>, options: Option<AggregateOptions>) -> Result<Cursor>
Runs an aggregation framework pipeline.
fn count(&self, filter: Option<Document>, options: Option<CountOptions>) -> Result<i64>
Gets the number of documents matching the filter.
fn distinct(&self, field_name: &str, filter: Option<Document>, options: Option<DistinctOptions>) -> Result<Vec<Bson>>
Finds the distinct values for a specified field across a single collection.
fn find(&self, filter: Option<Document>, options: Option<FindOptions>) -> Result<Cursor>
Returns a list of documents within the collection that match the filter.
fn find_one(&self, filter: Option<Document>, options: Option<FindOptions>) -> Result<Option<Document>>
Returns the first document within the collection that matches the filter, or None.
fn find_one_with_command_type(&self, filter: Option<Document>, options: Option<FindOptions>, cmd_type: CommandType) -> Result<Option<Document>>
fn find_one_and_delete(&self, filter: Document, options: Option<FindOneAndDeleteOptions>) -> Result<Option<Document>>
Finds a single document and deletes it, returning the original.
fn find_one_and_replace(&self, filter: Document, replacement: Document, options: Option<FindOneAndUpdateOptions>) -> Result<Option<Document>>
Finds a single document and replaces it, returning either the original or replaced document.
fn find_one_and_update(&self, filter: Document, update: Document, options: Option<FindOneAndUpdateOptions>) -> Result<Option<Document>>
Finds a single document and updates it, returning either the original or updated document.
fn get_ordered_batches(requests: VecDeque<WriteModel>) -> Vec<Batch>
fn bulk_write(&self, requests: Vec<WriteModel>, ordered: bool) -> BulkWriteResult
Sends a batch of writes to the server at the same time.
fn insert_one(&self, doc: Document, write_concern: Option<WriteConcern>) -> Result<InsertOneResult>
Inserts the provided document. If the document is missing an identifier, the driver should generate one.
fn insert_many(&self, docs: Vec<Document>, options: Option<InsertManyOptions>) -> Result<InsertManyResult>
Inserts the provided documents. If any documents are missing an identifier, the driver should generate them.
fn delete_one(&self, filter: Document, write_concern: Option<WriteConcern>) -> Result<DeleteResult>
Deletes a single document.
fn delete_many(&self, filter: Document, write_concern: Option<WriteConcern>) -> Result<DeleteResult>
Deletes multiple documents.
fn replace_one(&self, filter: Document, replacement: Document, options: Option<ReplaceOptions>) -> Result<UpdateResult>
Replaces a single document.
fn update_one(&self, filter: Document, update: Document, options: Option<UpdateOptions>) -> Result<UpdateResult>
Updates a single document.
fn update_many(&self, filter: Document, update: Document, options: Option<UpdateOptions>) -> Result<UpdateResult>
Updates multiple documents.
fn create_index(&self, keys: Document, options: Option<IndexOptions>) -> Result<String>
Create a single index.
fn create_index_model(&self, model: IndexModel) -> Result<String>
Create a single index with an IndexModel.
fn create_indexes(&self, models: Vec<IndexModel>) -> Result<Vec<String>>
Create multiple indexes.
fn drop_index(&self, keys: Document, options: Option<IndexOptions>) -> Result<()>
Drop an index.
fn drop_index_string(&self, name: String) -> Result<()>
Drop an index by name.
fn drop_index_model(&self, model: IndexModel) -> Result<()>
Drop an index by IndexModel.
fn drop_indexes(&self) -> Result<()>
Drop all indexes in the collection.
fn list_indexes(&self) -> Result<Cursor>
List all indexes in the collection.