|
template<typename U > |
constexpr nvp_child< iterable_value_t< no_opt_type >, U, NvpT > | operator->* (const nvp< iterable_value_t< no_opt_type >, U > &child) const |
| Chains two name-value pairs to access a sub-field, i.e. More...
|
|
constexpr sort_expr< NvpT > | sort (bool ascending) const |
| Creates a sort expression that sorts documents by this field. More...
|
|
template<typename Iterable , typename = enable_if_matching_iterable_t<Iterable>> |
constexpr comparison_expr< NvpT, Iterable > | in (const Iterable &iter) const |
| Creates an expression that checks whether the value of this field matches any value in the given iterable. More...
|
|
template<typename Iterable , typename = enable_if_matching_iterable_t<Iterable>> |
constexpr comparison_expr< NvpT, Iterable > | nin (const Iterable &iter) const |
| Creates an expression that checks whether the value of this field matches none of the values in the given iterable. More...
|
|
template<typename U = T, typename = std::enable_if_t<is_optional_v<U>>> |
constexpr comparison_expr< NvpT, bool > | exists (const bool &exists) const |
| Creates an expression that checks the existence of a certain field. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<std::is_arithmetic<U>::value>> |
constexpr mod_expr< NvpT > | mod (const int &divisor, const int &remainder) const |
| Creates a mod_expr that represents a query with the $mod operator. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_string_v<U>>> |
constexpr comparison_value_expr< NvpT, bsoncxx::types::b_regex > | regex (const char *regex, const char *options) const |
| Creates a comparison expression that represents a query with a $regex operator. More...
|
|
template<typename Iterable , typename = enable_if_matching_iterable_t<Iterable>, typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>> |
constexpr comparison_expr< NvpT, Iterable > | all (const Iterable &iter) const |
| Creates a query with the $all operator that compares values in this field's array to values in another array. More...
|
|
template<typename Expr , typename = std::enable_if_t<details::is_query_expression_v<Expr>>, typename U = no_opt_type, typename = std::enable_if_t<is_iterable_v<U>>> |
constexpr comparison_expr< NvpT, Expr > | elem_match (const Expr &queries) const |
| Creates a query with the $elemMatch operator that finds elements in this field that match the given queries. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>> |
constexpr free_nvp< iterable_value_t< no_opt_type > > | element () const |
| Constructs a nameless name-value-pair that corresponds to an element in a scalar array, if this field is an array. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>> |
constexpr comparison_expr< NvpT, std::int64_t > | size (const std::int64_t &n) const |
| Creates an array query expression with the $size operator. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<std::is_integral<U>::value || std::is_same<U, bsoncxx::types::b_binary>::value>, typename Mask , typename = std::enable_if_t<std::is_integral<Mask>::value || std::is_same<Mask, bsoncxx::types::b_binary>::value>> |
constexpr comparison_expr< NvpT, Mask > | bits_all_set (const Mask &bitmask) const |
| Creates a query that uses the $bitsAllSet operator to check a numerical field with a bitmask. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<std::is_integral<U>::value || std::is_same<U, bsoncxx::types::b_binary>::value>, typename... Args> |
constexpr comparison_value_expr< NvpT, std::int64_t > | bits_all_set (std::int64_t pos1, std::int64_t pos2, Args...positions) const |
| Creates a query that uses the $bitsAllSet operator to check a series of bits, given as bit positions. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<std::is_integral<U>::value || std::is_same<U, bsoncxx::types::b_binary>::value>, typename Mask , typename = std::enable_if_t<std::is_integral<Mask>::value || std::is_same<Mask, bsoncxx::types::b_binary>::value>> |
constexpr comparison_expr< NvpT, Mask > | bits_any_set (const Mask &bitmask) const |
| Creates a query that uses the $bitsAnySet operator to check a numerical field with a bitmask. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<std::is_integral<U>::value || std::is_same<U, bsoncxx::types::b_binary>::value>, typename... Args> |
constexpr comparison_value_expr< NvpT, std::int64_t > | bits_any_set (std::int64_t pos1, std::int64_t pos2, Args...positions) const |
| Creates a query that uses the $bitsAnySet operator to check a series of bits, given as bit positions. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<std::is_integral<U>::value || std::is_same<U, bsoncxx::types::b_binary>::value>, typename Mask , typename = std::enable_if_t<std::is_integral<Mask>::value || std::is_same<Mask, bsoncxx::types::b_binary>::value>> |
constexpr comparison_value_expr< NvpT, Mask > | bits_all_clear (const Mask &bitmask) const |
| Creates a query that uses the $bitsAllClear operator to check a numerical field with a bitmask. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<std::is_integral<U>::value || std::is_same<U, bsoncxx::types::b_binary>::value>, typename... Args> |
constexpr comparison_value_expr< NvpT, std::int64_t > | bits_all_clear (std::int64_t pos1, std::int64_t pos2, Args...positions) const |
| Creates a query that uses the $bitsAllClear operator to check a series of bits, given as bit positions. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<std::is_integral<U>::value || std::is_same<U, bsoncxx::types::b_binary>::value>, typename Mask , typename = std::enable_if_t<std::is_integral<Mask>::value || std::is_same<Mask, bsoncxx::types::b_binary>::value>> |
constexpr comparison_expr< NvpT, Mask > | bits_any_clear (const Mask &bitmask) const |
| Creates a query that uses the $bitsAnyClear operator to check a numerical field with a bitmask. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<std::is_integral<U>::value || std::is_same<U, bsoncxx::types::b_binary>::value>, typename... Args> |
constexpr comparison_value_expr< NvpT, std::int64_t > | bits_any_clear (std::int64_t pos1, std::int64_t pos2, Args...positions) const |
| Creates a query that uses the $bitsAnyClear operator to check a series of bits, given as bit positions. More...
|
|
template<typename U = T, typename = std::enable_if_t<is_optional_v<U>>> |
constexpr unset_expr< NvpT > | unset () const |
| Creates an expression that unsets the current field. More...
|
|
constexpr update_expr< NvpT, no_opt_type > | min (const no_opt_type &val) const |
| Creates an expression that uses the $min operator to only update a field if the new value is lower than the current value. More...
|
|
constexpr update_expr< NvpT, no_opt_type > | max (const no_opt_type &val) const |
| Creates an expression that uses the $max operator to only update a field if the new value is greater than the current value. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>> |
constexpr dollar_operator_nvp< NvpT > | first_match () const |
| Returns a name-value pair with the $ operator appended to it. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>> |
constexpr update_value_expr< NvpT, int > | pop (bool last) const |
| Creates an update expression with the $pop operator. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>> |
constexpr update_expr< NvpT, iterable_value_t< no_opt_type > > | pull (const iterable_value_t< no_opt_type > &val) const |
| Creates an update expression with the $pull operator, that removes an element if it matches the given value exactly. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>, typename Expr > |
constexpr std::enable_if_t< details::is_query_expression_v< Expr >, update_expr< NvpT, Expr > > | pull (const Expr &expr) const |
| Creates an update expression with the $pull operator, that removes an element if it matches the given query. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>, typename Iterable , typename = enable_if_matching_iterable_t<Iterable>> |
constexpr update_expr< NvpT, Iterable > | pull_all (const Iterable &iter) const |
| Creates an update expression with the $pull operator, that removes an element if it matches the given value exactly. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>> |
constexpr add_to_set_update_expr< NvpT, iterable_value_t< no_opt_type > > | add_to_set (const iterable_value_t< no_opt_type > &val) const |
| Creates an update expression with the $addToSet operator, that adds a single value to an array, if it is unique. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>, typename Iterable , typename = enable_if_matching_iterable_t<Iterable>> |
constexpr add_to_set_update_expr< NvpT, Iterable > | add_to_set (const Iterable &iter) const |
| Creates an update expression with the $addToSet operator and the $each modifier, that adds a list of value to an array, only keeping the unique values. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>> |
constexpr push_update_expr< NvpT, iterable_value_t< no_opt_type > > | push (const iterable_value_t< no_opt_type > &val) const |
| Creates an update epxression with the $push operator, that adds a single value to an array. More...
|
|
template<typename U = no_opt_type, typename = std::enable_if_t<is_iterable_not_string_v<U>>, typename Iterable , typename = enable_if_matching_iterable_t<Iterable>, typename Sort = int, typename = std::enable_if_t<details::is_sort_expression_v<Sort> || std::is_same<int, Sort>::value>> |
constexpr push_update_expr< NvpT, Iterable, Sort > | push (const Iterable &iter, bsoncxx::stdx::optional< std::int32_t > slice=bsoncxx::stdx::nullopt, const bsoncxx::stdx::optional< Sort > &sort=bsoncxx::stdx::nullopt, bsoncxx::stdx::optional< std::uint32_t > position=bsoncxx::stdx::nullopt) const |
| Creates an update epxression with the $push operator and the $each modifier, that adds a list of value to an array. More...
|
|