39 explicit Collection(std::shared_ptr<impl::CollectionImpl>,
bool transactional =
false);
45 template <
typename... Options>
50 template <
typename... Options>
54 template <
typename... Options>
58 template <
typename... Options>
62 template <
typename... Options>
66 template <
typename... Options>
71 template <
typename... Options>
76 template <
typename... Options>
81 template <
typename... Options>
85 template <
typename... Options>
89 template <
typename... Options>
95 template <
typename... Options>
103 template <
typename... Options>
107 template <
typename... Options>
108 void Drop(Options&&... options);
111 template <
typename... Options>
115 template <
typename... Options>
121 template <
typename... Options>
127 template <
typename... Options>
128 std::vector<formats::
bson::
Value>
Distinct(std::string field, Options&&... options)
const;
134 template <
typename... Options>
159 std::shared_ptr<impl::CollectionImpl> impl_;
160 bool transactional_{
false};
198 !(std::is_same<std::decay_t<Options>,
options::
Limit>::value || ...),
199 "Limit option cannot be used in FindOne"
203 (find_op.SetOption(std::forward<Options>(options)), ...);
204 auto cursor = Execute(find_op);
205 if (cursor.begin() == cursor.end()) {
208 return *cursor.begin();