MongoDB C++ Driver 4.2.0
Loading...
Searching...
No Matches
count.hpp
Go to the documentation of this file.
1// Copyright 2009-present MongoDB, Inc.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#pragma once
16
17#include <mongocxx/options/count-fwd.hpp> // IWYU pragma: export
18
19//
20
23
24#include <mongocxx/v1/count_options.hpp> // IWYU pragma: export
25
26#include <chrono>
27#include <cstdint>
28#include <string> // IWYU pragma: keep: backward compatibility, to be removed.
29#include <utility>
30
36
37#include <mongocxx/hint.hpp>
39
41
42namespace mongocxx {
43namespace v_noabi {
44namespace options {
45
49class count {
50 public:
54 count() = default;
55
59 /* explicit(false) */ MONGOCXX_ABI_EXPORT_CDECL() count(v1::count_options opts);
60
64 explicit operator v1::count_options() const {
67
69
70 if (_collation) {
71 ret.collation(bsoncxx::v1::document::value{to_v1(_collation->view())});
72 }
73
74 if (_hint) {
75 ret.hint(to_v1(*_hint));
76 }
77
78 if (_comment) {
79 ret.comment(bsoncxx::v1::types::value{to_v1(_comment->view())});
80 }
81
82 if (_limit) {
83 ret.limit(*_limit);
84 }
85
86 if (_max_time) {
87 ret.max_time(*_max_time);
88 }
89
90 if (_skip) {
91 ret.skip(*_skip);
92 }
93
94 if (_read_preference) {
95 ret.read_preference(to_v1(*_read_preference));
96 }
97
98 return ret;
99 }
100
115 _collation = std::move(collation);
116 return *this;
117 }
118
131
145 count& hint(v_noabi::hint index_hint) {
146 _hint = std::move(index_hint);
147 return *this;
148 }
149
159 return _hint;
160 }
161
176 _comment = std::move(comment);
177 return *this;
178 }
179
191
205 count& limit(std::int64_t limit) {
206 _limit = limit;
207 return *this;
208 }
209
219 return _limit;
220 }
221
235 count& max_time(std::chrono::milliseconds max_time) {
236 _max_time = max_time;
237 return *this;
238 }
239
249 return _max_time;
250 }
251
265 count& skip(std::int64_t skip) {
266 _skip = skip;
267 return *this;
268 }
269
279 return _skip;
280 }
281
296 _read_preference = std::move(rp);
297 return *this;
298 }
299
309 return _read_preference;
310 }
311
312 private:
320};
321
322} // namespace options
323} // namespace v_noabi
324} // namespace mongocxx
325
326namespace mongocxx {
327namespace v_noabi {
328
333 return {std::move(v)};
334}
335
342
343} // namespace v_noabi
344} // namespace mongocxx
345
347
A BSON document.
Definition value.hpp:46
A polyfill for std::optional<T>.
Definition optional.hpp:799
A union of BSON type values.
Definition value.hpp:54
count()=default
Default initialization.
Options for a "countDocuments" operation.
Definition count_options.hpp:58
count_options & collation(bsoncxx::v1::document::value collation)
Set the "collation" field.
count_options & max_time(std::chrono::milliseconds max_time)
Set the "maxTimeMS" field.
count_options & limit(std::int64_t limit)
Set the "limit" field.
count_options & hint(v1::hint index_hint)
Set the "hint" field.
count_options & read_preference(v1::read_preference rp)
Set the "readPreference" field.
count_options & comment(bsoncxx::v1::types::value comment)
Set the "comment" field.
count_options & skip(std::int64_t skip)
Set the "skip" field.
The index to "hint" or force a MongoDB server to use when performing a query.
Definition hint.hpp:42
Used by mongocxx::v_noabi::collection::count_documents.
Definition count.hpp:49
bsoncxx::v_noabi::stdx::optional< v_noabi::read_preference > const & read_preference() const
The current read_preference for this operation.
Definition count.hpp:308
bsoncxx::v_noabi::stdx::optional< bsoncxx::v_noabi::document::view_or_value > const & collation() const
Retrieves the current collation for this operation.
Definition count.hpp:128
count & read_preference(v_noabi::read_preference rp)
Sets the read_preference for this operation.
Definition count.hpp:295
count & skip(std::int64_t skip)
Sets the number of documents to skip before counting documents.
Definition count.hpp:265
count & max_time(std::chrono::milliseconds max_time)
Sets the maximum amount of time for this operation to run (server-side) in milliseconds.
Definition count.hpp:235
count & limit(std::int64_t limit)
Sets the maximum number of documents to count.
Definition count.hpp:205
bsoncxx::v_noabi::stdx::optional< std::chrono::milliseconds > const & max_time() const
The current max_time setting.
Definition count.hpp:248
count()=default
Default initialization.
bsoncxx::v_noabi::stdx::optional< std::int64_t > const & limit() const
Gets the current limit.
Definition count.hpp:218
bsoncxx::v_noabi::stdx::optional< bsoncxx::v_noabi::types::bson_value::view_or_value > const & comment() const
Gets the current value of the comment option.
Definition count.hpp:188
count & comment(bsoncxx::v_noabi::types::bson_value::view_or_value comment)
Set the value of the comment option.
Definition count.hpp:175
count & hint(v_noabi::hint index_hint)
Sets the index to use for this operation.
Definition count.hpp:145
bsoncxx::v_noabi::stdx::optional< v_noabi::hint > const & hint() const
Gets the current hint.
Definition count.hpp:158
operator v1::count_options() const
Convert to the mongocxx::v1 equivalent.
Definition count.hpp:64
bsoncxx::v_noabi::stdx::optional< std::int64_t > const & skip() const
Gets the current number of documents to skip.
Definition count.hpp:278
count & collation(bsoncxx::v_noabi::document::view_or_value collation)
Sets the collation for this operation.
Definition count.hpp:114
Describes how MongoDB clients route read operations to the members of a replica set or sharded cluste...
Definition read_preference.hpp:59
Declares mongocxx::v_noabi::options::count.
Provides mongocxx::v1::count_options.
Provides bsoncxx::v_noabi::document::view_or_value.
#define MONGOCXX_ABI_EXPORT_CDECL(...)
Equivalent to MONGOCXX_ABI_EXPORT with MONGOCXX_ABI_CDECL.
Definition export.hpp:52
The mongocxx v_noabi macro guard postlude header.
The mongocxx v_noabi macro guard prelude header.
v_noabi::view_or_value< v_noabi::document::view, v_noabi::document::value > view_or_value
Equivalent to v_noabi::view_or_value<v_noabi::document::view, v_noabi::document::value>.
Definition view_or_value.hpp:30
v_noabi::view_or_value< view, value > view_or_value
Equivalent to v_noabi::view_or_value<view, value>.
Definition view_or_value.hpp:31
v1::element::view to_v1(v_noabi::array::element const &v)
Convert to the bsoncxx::v1 equivalent of v.
Definition element.hpp:132
Declares entities whose ABI stability is guaranteed for documented symbols.
Declares entities representing options to use with various commands.
Declares entities whose ABI stability is NOT guaranteed.
v1::bulk_write to_v1(v_noabi::bulk_write v)
Convert to the mongocxx::v1 equivalent of v.
Definition bulk_write.hpp:162
v_noabi::bulk_write from_v1(v1::bulk_write v)
Convert to the mongocxx::v_noabi equivalent of v.
Definition bulk_write.hpp:155
The top-level namespace within which all mongocxx library entities are declared.
Provides bsoncxx::v_noabi::types::bson_value::view_or_value.
Provides bsoncxx::v1::document::value.
Provides bsoncxx::v1::types::value.
Provides bsoncxx::v_noabi::document::view.
Provides std::optional-related polyfills for library API usage.
Provides bsoncxx::v_noabi::types::bson_value::view.
Provides mongocxx::v_noabi::hint.
Provides mongocxx::v_noabi::read_preference.