38 explicit Collection(std::shared_ptr<impl::CollectionImpl>);
44 template <
typename... Options>
49 template <
typename... Options>
53 template <
typename... Options>
57 template <
typename... Options>
61 template <
typename... Options>
65 template <
typename... Options>
70 template <
typename... Options>
75 template <
typename... Options>
80 template <
typename... Options>
84 template <
typename... Options>
88 template <
typename... Options>
94 template <
typename... Options>
99 template <
typename... Options>
103 template <
typename... Options>
104 void Drop(Options&&... options);
107 template <
typename... Options>
111 template <
typename... Options>
117 template <
typename... Options>
123 template <
typename... Options>
130 template <
typename... Options>
155 std::shared_ptr<impl::CollectionImpl> impl_;
192 !(std::is_same<std::decay_t<Options>,
options::
Limit>::value || ...),
"Limit option cannot be used in FindOne"
194 auto cursor = Find(std::move(filter),
options::
Limit{1}, std::forward<Options>(options)...);
195 if (cursor.begin() == cursor.end())
return {};
196 return *cursor.begin();