17 #include <mangrove/config/prelude.hpp> 22 #include <type_traits> 24 #include <bsoncxx/types.hpp> 26 #include <mangrove/macros.hpp> 27 #include <mangrove/util.hpp> 30 MANGROVE_INLINE_NAMESPACE_BEGIN
33 enum struct expression_category { none, query, update, sort };
36 template <expression_category,
typename>
40 template <expression_category expr_type>
42 static constexpr expression_category value = expr_type;
47 template <
typename NvpT>
50 template <expression_category list_type,
typename... Args>
53 template <
typename NvpT,
typename U>
56 template <
typename NvpT,
typename U>
59 template <
typename NvpT>
62 template <
typename Expr>
67 template <
typename Expr1,
typename Expr2>
70 template <
typename List>
73 template <
typename NvpT,
typename U>
76 template <
typename NvpT,
typename U>
79 template <
typename NvpT>
82 template <
typename NvpT>
85 template <
typename NvpT,
typename U>
88 template <
typename NvpT,
typename U,
typename Sort =
int>
91 template <
typename NvpT,
typename Integer>
111 template <
typename T>
114 template <
typename NvpT>
117 template <expression_category list_type,
typename... Args>
121 template <
typename NvpT,
typename U>
124 template <
typename NvpT,
typename U>
127 template <
typename NvpT>
130 template <
typename Expr>
136 template <
typename Expr1,
typename Expr2>
139 template <
typename List>
142 template <
typename NvpT,
typename U>
145 template <
typename NvpT,
typename U>
148 template <
typename NvpT>
151 template <
typename NvpT>
154 template <
typename NvpT,
typename U>
157 template <
typename NvpT,
typename U,
typename Sort>
160 template <
typename NvpT,
typename Integer>
164 template <expression_category type,
typename T>
167 template <
typename T>
170 template <
typename T>
173 template <
typename T>
176 template <
typename T>
179 template <
typename T>
182 template <
typename T>
185 template <
typename T>
188 template <
typename T>
192 MANGROVE_INLINE_NAMESPACE_END
195 #include <mangrove/config/postlude.hpp> Represents an array update epression that uses the $push operator.
Definition: expression_syntax.hpp:89
Creates an expression that uses the $currentDate operator.
Definition: expression_syntax.hpp:83
Represents a query that performs a text search with the $text operator.
Definition: query_builder.hpp:335
This class represents a query expression using the $mod operator, that checks the modulus of a certai...
Definition: expression_syntax.hpp:60
Definition: expression_syntax.hpp:165
An expression that uses the $addToSet operator to add unique elements to an array.
Definition: expression_syntax.hpp:86
Definition: expression_syntax.hpp:37
This represents a boolean expression with two arguments.
Definition: expression_syntax.hpp:68
Represents an expresion that uses the $unset operator.
Definition: expression_syntax.hpp:80
Definition: expression_syntax.hpp:174
Definition: expression_syntax.hpp:41
Represents an update operator that modifies a certain elements.
Definition: expression_syntax.hpp:74
Expression that updates field using the $bit operator, which does bitwise operations using a mask...
Definition: expression_syntax.hpp:92
Definition: collection_wrapper.hpp:28
Definition: expression_syntax.hpp:180
This represents an expression with the $not operator, which wraps a comparison expression and negates...
Definition: expression_syntax.hpp:63
Represents a comparison expression as above, but stores a value instead of a reference.
Definition: expression_syntax.hpp:57
Definition: expression_syntax.hpp:109
This class represents a boolean expression over an array of arguments.
Definition: expression_syntax.hpp:71
Definition: expression_syntax.hpp:77
Definition: expression_syntax.hpp:168
An expression that represents a sorting order.
Definition: expression_syntax.hpp:48
Represents a query expression with the syntax "key: {$op: value}".
Definition: expression_syntax.hpp:54
This represents a list of expressions.
Definition: expression_syntax.hpp:51
Definition: expression_syntax.hpp:186