Struct Find

Source
pub struct Find<'a, T: Send + Sync, Session = ImplicitSession> { /* private fields */ }
Expand description

Finds the documents in a collection matching a filter. Construct with Collection::find.

Implementations§

Source§

impl<'a, T: Send + Sync, Session> Find<'a, T, Session>

Source

pub fn session<'s>( self, value: impl Into<&'s mut ClientSession>, ) -> Find<'a, T, ExplicitSession<'s>>

Use the provided session when running the operation.

Source

pub fn with_options(self, value: impl Into<Option<FindOptions>>) -> Self

Set all options. Note that this will replace all previous values set.

Source

pub fn allow_disk_use(self, value: bool) -> Self

Enables writing to temporary files by the server. When set to true, the find operation can write data to the _tmp subdirectory in the dbPath directory. Only supported in server versions 4.4+.

Source

pub fn allow_partial_results(self, value: bool) -> Self

If true, partial results will be returned from a mongos rather than an error being returned if one or more shards is down.

Source

pub fn batch_size(self, value: u32) -> Self

The number of documents the server should return per cursor batch.

Note that this does not have any affect on the documents that are returned by a cursor, only the number of documents kept in memory at a given time (and by extension, the number of round trips needed to return the entire set of documents returned by the query.

Source

pub fn comment(self, value: impl Into<Bson>) -> Self

Tags the query with an arbitrary Bson value to help trace the operation through the database profiler, currentOp and logs.

For server versions less than 4.4, only a string value may be provided.

Source

pub fn cursor_type(self, value: CursorType) -> Self

The type of cursor to return.

Source

pub fn hint(self, value: Hint) -> Self

The index to use for the operation.

Source

pub fn limit(self, value: i64) -> Self

The maximum number of documents to query. If a negative number is specified, the documents will be returned in a single batch limited in number by the positive value of the specified limit.

Source

pub fn max(self, value: Document) -> Self

The exclusive upper bound for a specific index.

Source

pub fn max_await_time(self, value: Duration) -> Self

The maximum amount of time for the server to wait on new documents to satisfy a tailable cursor query. If the cursor is not tailable, this option is ignored.

Source

pub fn max_scan(self, value: u64) -> Self

Maximum number of documents or index keys to scan when executing the query.

Note: this option is deprecated starting in MongoDB version 4.0 and removed in MongoDB 4.2. Use the maxTimeMS option instead.

Source

pub fn max_time(self, value: Duration) -> Self

The maximum amount of time to allow the query to run.

This options maps to the maxTimeMS MongoDB query option, so the duration will be sent across the wire as an integer number of milliseconds.

Source

pub fn min(self, value: Document) -> Self

The inclusive lower bound for a specific index.

Source

pub fn no_cursor_timeout(self, value: bool) -> Self

Whether the server should close the cursor after a period of inactivity.

Source

pub fn projection(self, value: Document) -> Self

The projection document to determine which fields to include in the returned document.

Specifying this option may cause deserialization errors if the returned fields do not fit the schema of the collection’s generic type. The clone_with_type method can be used to retrieve a handle to the collection with a different generic type configured.

Source

pub fn read_concern(self, value: ReadConcern) -> Self

The read concern to use for this find query.

If none specified, the default set on the collection will be used.

Source

pub fn return_key(self, value: bool) -> Self

Whether to return only the index keys in the documents.

Source

pub fn selection_criteria(self, value: SelectionCriteria) -> Self

The criteria used to select a server for this find query.

If none specified, the default set on the collection will be used.

Source

pub fn show_record_id(self, value: bool) -> Self

Whether to return the record identifier for each document. If true, adds a $recordId field to the returned documents.

Defaults to false.

Source

pub fn skip(self, value: u64) -> Self

The number of documents to skip before counting.

Source

pub fn sort(self, value: Document) -> Self

The order of the documents for the purposes of the operation.

Source

pub fn collation(self, value: Collation) -> Self

The collation to use for the operation.

See the documentation for more information on how to use this option.

Source

pub fn let_vars(self, value: Document) -> Self

Map of parameter names and values. Values must be constant or closed expressions that do not reference document fields. Parameters can then be accessed as variables in an aggregate expression context (e.g. “$$var”).

Only available in MongoDB 5.0+.

Source§

impl<'a, T: Send + Sync> Find<'a, T, ImplicitSession>

Source

pub fn run(self) -> Result<Cursor<T>>

Available on crate feature sync only.

Synchronously execute this action.

Source§

impl<'a, T: Send + Sync> Find<'a, T, ExplicitSession<'a>>

Source

pub fn run(self) -> Result<SessionCursor<T>>

Available on crate feature sync only.

Synchronously execute this action.

Trait Implementations§

Source§

impl<'a, T: Send + Sync> Action for Find<'a, T, ImplicitSession>

Source§

fn optional<Value>( self, value: Option<Value>, f: impl FnOnce(Self, Value) -> Self, ) -> Self
where Self: Sized,

If the value is Some, call the provided function on self. Convenient for chained updates with values that need to be set conditionally. For example: Read more
Source§

impl<'a, T: Send + Sync> Action for Find<'a, T, ExplicitSession<'a>>

Source§

fn optional<Value>( self, value: Option<Value>, f: impl FnOnce(Self, Value) -> Self, ) -> Self
where Self: Sized,

If the value is Some, call the provided function on self. Convenient for chained updates with values that need to be set conditionally. For example: Read more
Source§

impl<'a, T: Send + Sync> IntoFuture for Find<'a, T, ImplicitSession>

Source§

type Output = Result<Cursor<T>, Error>

The output that the future will produce on completion.
Source§

type IntoFuture = FindFuture<'a, T>

Which kind of future are we turning this into?
Source§

fn into_future(self) -> Self::IntoFuture

Creates a future from a value. Read more
Source§

impl<'a, T: Send + Sync> IntoFuture for Find<'a, T, ExplicitSession<'a>>

Source§

type Output = Result<SessionCursor<T>, Error>

The output that the future will produce on completion.
Source§

type IntoFuture = FindSessionFuture<'a, T>

Which kind of future are we turning this into?
Source§

fn into_future(self) -> Self::IntoFuture

Creates a future from a value. Read more

Auto Trait Implementations§

§

impl<'a, T, Session> Freeze for Find<'a, T, Session>
where Session: Freeze,

§

impl<'a, T, Session = ImplicitSession> !RefUnwindSafe for Find<'a, T, Session>

§

impl<'a, T, Session> Send for Find<'a, T, Session>
where Session: Send,

§

impl<'a, T, Session> Sync for Find<'a, T, Session>
where Session: Sync,

§

impl<'a, T, Session> Unpin for Find<'a, T, Session>
where Session: Unpin,

§

impl<'a, T, Session = ImplicitSession> !UnwindSafe for Find<'a, T, Session>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,