Library: MongoDB
Package: MongoDB
Header: Poco/MongoDB/Document.h
Description
Represents a BSON document
Inheritance
Known Derived Classes: Array, Cursor
Member Summary
Member Functions: add, addElement, addNewDocument, clear, elementNames, empty, exists, get, isType, read, size, toString, write
Types
Ptr
typedef SharedPtr < Document > Ptr;
Vector
typedef std::vector < Document::Ptr > Vector;
Constructors
Document
Document();
Constructor
Destructor
~Document
virtual ~Document();
Destructor
Member Functions
add
template < typename T > Document & add(
const std::string & name,
T value
);
Creates an element with the given name and value and The active document is returned to allow chaining of the add methods.
add
Document & add(
const std::string & name,
const char * value
);
Creates an element with the given name and value and The active document is returned to allow chaining of the add methods.
addElement
Document & addElement(
Element::Ptr element
);
Add an element to the document. The active document is returned to allow chaining of the add methods.
addNewDocument
Document & addNewDocument(
const std::string & name
);
Create a new document and add it to this document. Unlike the other add methods, this method returns a reference to the new document.
clear
void clear();
Removes all elements from the document.
elementNames
void elementNames(
std::vector < std::string > & keys
) const;
Puts all element names into std::vector.
empty
bool empty() const;
Returns true when the document doesn't contain any documents.
exists
bool exists(
const std::string & name
);
Returns true when the document has an element with the given name
get
template < typename T > T get(
const std::string & name
) const;
Returns the element with the given name and tries to convert it to the template type. When the element is not found, a NotFoundException will be thrown. When the element can't be converted a BadCastException will be thrown.
get
template < typename T > T get(
const std::string & name,
const T & def
) const;
Returns the element with the given name and tries to convert it to the template type. When the element is not found, or has the wrong type, the def argument will be returned.
get
Element::Ptr get(
const std::string & name
) const;
Returns the element with the given name. An empty element will be returned when the element is not found.
isType
template < typename T > bool isType(
const std::string & name
);
Returns true when the type of the element equals the TypeId of ElementTrait
read
void read(
BinaryReader & reader
);
Reads a document from the reader
size
size_t size() const;
Returns the number of elements in the document.
toString
virtual std::string toString(
int indent = 0
) const;
Returns a String representation of the document.
write
void write(
BinaryWriter & writer
);
Writes a document to the reader
Variables
_elements
ElementSet _elements;