Non-mutable BSON value representation. 
Class provides non mutable access BSON value. For modification and construction of new BSON values use formats::bson::ValueBuilder.
Example usage:
  
 
 
  const auto key1 = bson[
"key1"].
As<
int>();
 
  ASSERT_EQ(key1, 1);
 
  const auto key3 = bson[
"key2"][
"key3"].
As<std::string>();
 
  ASSERT_EQ(key3, "val");
- See also
 - Formats (JSON, YAML, BSON, ...) 
 
- Examples
 - samples/mongo_service/mongo_service.cpp.
 
Definition at line 40 of file value.hpp.
 
 | 
| 
  | Value () | 
|   | Constructs a null value. 
  | 
|   | 
| 
  | Value (const Value &)=default | 
|   | 
| 
  | Value (Value &&) noexcept=default | 
|   | 
| 
Value &  | operator= (const Value &) &=default | 
|   | 
| 
Value &  | operator= (Value &&) &noexcept=default | 
|   | 
| template<class T >  | 
| Value &  | operator= (T &&) && | 
|   | 
| Value  | operator[] (const std::string &name) const | 
|   | Retrieves document field by name.  
  | 
|   | 
| Value  | operator[] (uint32_t index) const | 
|   | Retrieves array element by index.  
  | 
|   | 
| bool  | HasMember (const std::string &name) const | 
|   | Checks whether the document has a field.  
  | 
|   | 
| const_iterator  | begin () const | 
|   | Returns an iterator to the first array element/document field.  
  | 
|   | 
| const_iterator  | end () const | 
|   | Returns an iterator following the last array element/document field.  
  | 
|   | 
| const_reverse_iterator  | rbegin () const | 
|   | Returns a reversed iterator to the last array element.  
  | 
|   | 
| const_reverse_iterator  | rend () const | 
|   | Returns a reversed iterator following the first array element.  
  | 
|   | 
| bool  | IsEmpty () const | 
|   | Returns whether the document/array is empty.  
  | 
|   | 
| uint32_t  | GetSize () const | 
|   | Returns the number of elements in a document/array.  
  | 
|   | 
| 
std::string  | GetPath () const | 
|   | Returns value path in a document. 
  | 
|   | 
| 
bool  | operator== (const Value &) const | 
|   | 
| 
bool  | operator!= (const Value &) const | 
|   | 
| bool  | IsMissing () const | 
|   | Checks whether the selected element exists.  
  | 
|   | 
| template<typename T >  | 
| auto  | As () const | 
|   | 
| template<typename T , typename First , typename... Rest>  | 
| auto  | As (First &&default_arg, Rest &&... more_default_args) const | 
|   | 
| template<typename T >  | 
| auto  | As (DefaultConstructed) const | 
|   | Returns value of *this converted to T or T() if this->IsMissing().  
  | 
|   | 
| template<typename T >  | 
| T  | ConvertTo () const | 
|   | Extracts the specified type with relaxed type checks. For example, true may be converted to 1.0.  
  | 
|   | 
| template<typename T , typename First , typename... Rest>  | 
| T  | ConvertTo (First &&default_arg, Rest &&... more_default_args) const | 
|   | 
| void  | SetDuplicateFieldsPolicy (DuplicateFieldsPolicy) | 
|   | Changes parsing behavior when duplicate fields are encountered. Should not be used normally.  
  | 
|   | 
| 
void  | CheckNotMissing () const | 
|   | Throws a MemberMissingException if the selected element does not exist. 
  | 
|   | 
| 
void  | CheckArrayOrNull () const | 
|   | Throws a TypeMismatchException if the selected element is not an array or null. 
  | 
|   | 
| 
void  | CheckDocumentOrNull () const | 
|   | Throws a TypeMismatchException if the selected element is not a document or null. 
  | 
|   | 
 | 
| 
bool  | IsArray () const | 
|   | 
| 
bool  | IsDocument () const | 
|   | 
| 
bool  | IsNull () const | 
|   | 
| 
bool  | IsBool () const | 
|   | 
| 
bool  | IsInt32 () const | 
|   | 
| 
bool  | IsInt64 () const | 
|   | 
| 
bool  | IsDouble () const | 
|   | 
| 
bool  | IsString () const | 
|   | 
| 
bool  | IsDateTime () const | 
|   | 
| 
bool  | IsOid () const | 
|   | 
| 
bool  | IsBinary () const | 
|   | 
| 
bool  | IsDecimal128 () const | 
|   | 
| 
bool  | IsMinKey () const | 
|   | 
| 
bool  | IsMaxKey () const | 
|   | 
| 
bool  | IsTimestamp () const | 
|   | 
| bool  | IsObject () const | 
|   | 
template<typename T , typename First , typename... Rest> 
  
  
      
        
          | auto formats::bson::Value::As  | 
          ( | 
          First && |           default_arg,  | 
         
        
           | 
           | 
          Rest &&... |           more_default_args ) const | 
         
       
   | 
  
inline   | 
  
 
Extracts the specified type with strict type checks, or constructs the default value when the field is not present 
Definition at line 179 of file value.hpp.
 
 
template<typename T , typename First , typename... Rest> 
  
  
      
        
          | T formats::bson::Value::ConvertTo  | 
          ( | 
          First && |           default_arg,  | 
         
        
           | 
           | 
          Rest &&... |           more_default_args ) const | 
         
       
   | 
  
inline   | 
  
 
Extracts the specified type with strict type checks, or constructs the default value when the field is not present 
Definition at line 218 of file value.hpp.