Couchbase C++ SDK 1.0.4 (rev. 5355b0f)
Loading...
Searching...
No Matches
numeric_range_query.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * Copyright 2023-Present Couchbase, Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#pragma once
19
22
23#include <cstdint>
24#include <optional>
25#include <string>
26
27namespace couchbase
28{
43{
44public:
56 auto min(double value) -> numeric_range_query&
57 {
58 min_ = value;
59 return *this;
60 }
61
73 auto min(double value, bool inclusive) -> numeric_range_query&
74 {
75 min_ = value;
76 inclusive_min_ = inclusive;
77 return *this;
78 }
79
91 auto max(double value) -> numeric_range_query&
92 {
93 max_ = value;
94 return *this;
95 }
96
108 auto max(double value, bool inclusive) -> numeric_range_query&
109 {
110 max_ = value;
111 inclusive_max_ = inclusive;
112 return *this;
113 }
114
125 auto field(std::string field_name) -> numeric_range_query&
126 {
127 field_ = std::move(field_name);
128 return *this;
129 }
130
137 [[nodiscard]] auto encode() const -> encoded_search_query override;
138
139private:
140 std::optional<double> min_{};
141 std::optional<double> max_{};
142 std::optional<bool> inclusive_min_{};
143 std::optional<bool> inclusive_max_{};
144 std::optional<std::string> field_{};
145};
146} // namespace couchbase
The numeric range query finds documents containing a numeric value in the specified field within the ...
Definition numeric_range_query.hxx:43
auto field(std::string field_name) -> numeric_range_query &
If a field is specified, only terms in that field will be matched.
Definition numeric_range_query.hxx:125
auto min(double value) -> numeric_range_query &
Set lower limit of the range.
Definition numeric_range_query.hxx:56
auto max(double value) -> numeric_range_query &
Set upper limit of the range.
Definition numeric_range_query.hxx:91
auto encode() const -> encoded_search_query override
auto max(double value, bool inclusive) -> numeric_range_query &
Set upper limit and specify whether to include it into the limit.
Definition numeric_range_query.hxx:108
auto min(double value, bool inclusive) -> numeric_range_query &
Set lower limit and specify whether to include it into the limit.
Definition numeric_range_query.hxx:73
Base class for full text search queries.
Definition search_query.hxx:33
Represents a single item from the result of collection::scan()
Definition allow_querying_search_index_options.hxx:28