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>
102 template <
typename... Options>
106 template <
typename... Options>
107 void Drop(Options&&... options);
110 template <
typename... Options>
114 template <
typename... Options>
120 template <
typename... Options>
126 template <
typename... Options>
133 template <
typename... Options>
158 std::shared_ptr<impl::CollectionImpl> impl_;
195 !(std::is_same<std::decay_t<Options>,
options::
Limit>::value || ...),
196 "Limit option cannot be used in FindOne"
198 auto cursor = Find(std::move(filter),
options::
Limit{1}, std::forward<Options>(options)...);
199 if (cursor.begin() == cursor.end()) {
202 return *cursor.begin();