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>
140 std::shared_ptr<impl::CollectionImpl> impl_;
177 !(std::is_same<std::decay_t<Options>,
options::
Limit>::value || ...),
"Limit option cannot be used in FindOne"
179 auto cursor = Find(std::move(filter),
options::
Limit{1}, std::forward<Options>(options)...);
180 if (cursor.begin() == cursor.end())
return {};
181 return *cursor.begin();