Package org.bson

Class BsonDocument

java.lang.Object
org.bson.BsonValue
org.bson.BsonDocument
All Implemented Interfaces:
Serializable, Cloneable, Map<String,BsonValue>, Bson
Direct Known Subclasses:
BsonDocumentWrapper, RawBsonDocument

public class BsonDocument extends BsonValue implements Map<String,BsonValue>, Cloneable, Bson, Serializable
A type-safe container for a BSON document. This class should NOT be sub-classed by third parties.
Since:
3.0
See Also:
  • Constructor Details

    • BsonDocument

      public BsonDocument(List<BsonElement> bsonElements)
      Construct a new instance with the given list BsonElement, none of which may be null.
      Parameters:
      bsonElements - a list of BsonElement
    • BsonDocument

      public BsonDocument(String key, BsonValue value)
      Construct a new instance with a single key value pair
      Parameters:
      key - the key
      value - the value
    • BsonDocument

      public BsonDocument(int initialCapacity)
      Construct an empty document with the specified initial capacity.
      Parameters:
      initialCapacity - the initial capacity
      Throws:
      IllegalArgumentException - if the initial capacity is negative
      Since:
      4.3
    • BsonDocument

      public BsonDocument()
      Construct an empty document.
  • Method Details

    • parse

      public static BsonDocument parse(String json)
      Parses a string in MongoDB Extended JSON format to a BsonDocument
      Parameters:
      json - the JSON string
      Returns:
      a corresponding BsonDocument object
      See Also:
      MongoDB documentation
      MongoDB Extended JSON
    • toBsonDocument

      public <C> BsonDocument toBsonDocument(Class<C> documentClass, CodecRegistry codecRegistry)
      Description copied from interface: Bson
      Render into a BsonDocument.
      Specified by:
      toBsonDocument in interface Bson
      Type Parameters:
      C - the type of the document class
      Parameters:
      documentClass - the document class in scope for the collection. This parameter may be ignored, but it may be used to alter the structure of the returned BsonDocument based on some knowledge of the document class.
      codecRegistry - the codec registry. This parameter may be ignored, but it may be used to look up Codec instances for the document class or any other related class.
      Returns:
      the BsonDocument
    • getBsonType

      public BsonType getBsonType()
      Description copied from class: BsonValue
      Gets the BSON type of this value.
      Specified by:
      getBsonType in class BsonValue
      Returns:
      the BSON type, which may not be null (but may be BSONType.NULL)
    • size

      public int size()
      Specified by:
      size in interface Map<String,BsonValue>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface Map<String,BsonValue>
    • containsKey

      public boolean containsKey(Object key)
      Specified by:
      containsKey in interface Map<String,BsonValue>
    • containsValue

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<String,BsonValue>
    • get

      public BsonValue get(Object key)
      Specified by:
      get in interface Map<String,BsonValue>
    • getDocument

      public BsonDocument getDocument(Object key)
      Gets the value of the key if it is a BsonDocument, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonDocument
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not a BsonDocument
    • getArray

      public BsonArray getArray(Object key)
      Gets the value of the key if it is a BsonArray, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonArray
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getNumber

      public BsonNumber getNumber(Object key)
      Gets the value of the key if it is a BsonNumber, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonNumber
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getInt32

      public BsonInt32 getInt32(Object key)
      Gets the value of the key if it is a BsonInt32, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonInt32
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getInt64

      public BsonInt64 getInt64(Object key)
      Gets the value of the key if it is a BsonInt64, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonInt64
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getDecimal128

      public BsonDecimal128 getDecimal128(Object key)
      Gets the value of the key if it is a BsonDecimal128, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonDecimal128
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
      Since:
      3.4
    • getDouble

      public BsonDouble getDouble(Object key)
      Gets the value of the key if it is a BsonDouble, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonDouble
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getBoolean

      public BsonBoolean getBoolean(Object key)
      Gets the value of the key if it is a BsonBoolean, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonBoolean
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getString

      public BsonString getString(Object key)
      Gets the value of the key if it is a BsonString, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonString
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getDateTime

      public BsonDateTime getDateTime(Object key)
      Gets the value of the key if it is a BsonDateTime, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonDateTime
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getTimestamp

      public BsonTimestamp getTimestamp(Object key)
      Gets the value of the key if it is a BsonTimestamp, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonTimestamp
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getObjectId

      public BsonObjectId getObjectId(Object key)
      Gets the value of the key if it is a BsonObjectId, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonObjectId
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getRegularExpression

      public BsonRegularExpression getRegularExpression(Object key)
      Gets the value of the key if it is a BsonRegularExpression, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonRegularExpression
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • getBinary

      public BsonBinary getBinary(Object key)
      Gets the value of the key if it is a BsonBinary, or throws if not.
      Parameters:
      key - the key
      Returns:
      the value of the key as a BsonBinary
      Throws:
      BsonInvalidOperationException - if the document does not contain the key or the value is not of the expected type
    • isNull

      public boolean isNull(Object key)
      Returns true if the value of the key is a BsonNull, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonNull, returns false if the document does not contain the key.
    • isDocument

      public boolean isDocument(Object key)
      Returns true if the value of the key is a BsonDocument, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonDocument, returns false if the document does not contain the key.
    • isArray

      public boolean isArray(Object key)
      Returns true if the value of the key is a BsonArray, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonArray, returns false if the document does not contain the key.
    • isNumber

      public boolean isNumber(Object key)
      Returns true if the value of the key is a BsonNumber, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonNumber, returns false if the document does not contain the key.
    • isInt32

      public boolean isInt32(Object key)
      Returns true if the value of the key is a BsonInt32, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonInt32, returns false if the document does not contain the key.
    • isInt64

      public boolean isInt64(Object key)
      Returns true if the value of the key is a BsonInt64, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonInt64, returns false if the document does not contain the key.
    • isDecimal128

      public boolean isDecimal128(Object key)
      Returns true if the value of the key is a BsonDecimal128, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonDecimal128, returns false if the document does not contain the key.
      Since:
      3.4
    • isDouble

      public boolean isDouble(Object key)
      Returns true if the value of the key is a BsonDouble, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonDouble, returns false if the document does not contain the key.
    • isBoolean

      public boolean isBoolean(Object key)
      Returns true if the value of the key is a BsonBoolean, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonBoolean, returns false if the document does not contain the key.
    • isString

      public boolean isString(Object key)
      Returns true if the value of the key is a BsonString, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonString, returns false if the document does not contain the key.
    • isDateTime

      public boolean isDateTime(Object key)
      Returns true if the value of the key is a BsonDateTime, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonDateTime, returns false if the document does not contain the key.
    • isTimestamp

      public boolean isTimestamp(Object key)
      Returns true if the value of the key is a BsonTimestamp, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonTimestamp, returns false if the document does not contain the key.
    • isObjectId

      public boolean isObjectId(Object key)
      Returns true if the value of the key is a BsonObjectId, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonObjectId, returns false if the document does not contain the key.
    • isBinary

      public boolean isBinary(Object key)
      Returns true if the value of the key is a BsonBinary, returns false if the document does not contain the key.
      Parameters:
      key - the key
      Returns:
      true if the value of the key is a BsonBinary, returns false if the document does not contain the key.
    • get

      public BsonValue get(Object key, BsonValue defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonValue
    • getDocument

      public BsonDocument getDocument(Object key, BsonDocument defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonDocument.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonDocument
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getArray

      public BsonArray getArray(Object key, BsonArray defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonArray.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonArray
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getNumber

      public BsonNumber getNumber(Object key, BsonNumber defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonNumber.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonNumber
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getInt32

      public BsonInt32 getInt32(Object key, BsonInt32 defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonInt32.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonInt32
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getInt64

      public BsonInt64 getInt64(Object key, BsonInt64 defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonInt64.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonInt64
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getDecimal128

      public BsonDecimal128 getDecimal128(Object key, BsonDecimal128 defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonDecimal128.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonDecimal128
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
      Since:
      3.4
    • getDouble

      public BsonDouble getDouble(Object key, BsonDouble defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonDouble.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonDouble
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getBoolean

      public BsonBoolean getBoolean(Object key, BsonBoolean defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonBoolean.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonBoolean
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getString

      public BsonString getString(Object key, BsonString defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonString.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonString
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getDateTime

      public BsonDateTime getDateTime(Object key, BsonDateTime defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonDateTime.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonDateTime
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getTimestamp

      public BsonTimestamp getTimestamp(Object key, BsonTimestamp defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonTimestamp.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonTimestamp
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getObjectId

      public BsonObjectId getObjectId(Object key, BsonObjectId defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonObjectId.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonObjectId
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getBinary

      public BsonBinary getBinary(Object key, BsonBinary defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonBinary.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonBinary
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • getRegularExpression

      public BsonRegularExpression getRegularExpression(Object key, BsonRegularExpression defaultValue)
      If the document does not contain the given key, return the given default value. Otherwise, gets the value of the key as a BsonRegularExpression.
      Parameters:
      key - the key
      defaultValue - the default value
      Returns:
      the value of the key as a BsonRegularExpression
      Throws:
      BsonInvalidOperationException - if the document contains the key but the value is not of the expected type
    • put

      public BsonValue put(String key, BsonValue value)
      Specified by:
      put in interface Map<String,BsonValue>
    • remove

      public BsonValue remove(Object key)
      Specified by:
      remove in interface Map<String,BsonValue>
    • putAll

      public void putAll(Map<? extends String,? extends BsonValue> m)
      Specified by:
      putAll in interface Map<String,BsonValue>
    • clear

      public void clear()
      Specified by:
      clear in interface Map<String,BsonValue>
    • keySet

      public Set<String> keySet()
      Specified by:
      keySet in interface Map<String,BsonValue>
    • values

      public Collection<BsonValue> values()
      Specified by:
      values in interface Map<String,BsonValue>
    • entrySet

      public Set<Map.Entry<String,BsonValue>> entrySet()
      Specified by:
      entrySet in interface Map<String,BsonValue>
    • append

      public BsonDocument append(String key, BsonValue value)
      Put the given key and value into this document, and return the document.
      Parameters:
      key - the key
      value - the value
      Returns:
      this
    • getFirstKey

      public String getFirstKey()
      Gets the first key in the document.
      Returns:
      the first key in the document
      Throws:
      NoSuchElementException - if the document is empty
      Since:
      3.6
    • asBsonReader

      public BsonReader asBsonReader()
      Gets the first value in the document
      Returns:
      the first value in the document
      Throws:
      NoSuchElementException - if the document is empty
      Since:
      3.7
    • equals

      public boolean equals(Object o)
      Specified by:
      equals in interface Map<String,BsonValue>
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface Map<String,BsonValue>
      Overrides:
      hashCode in class Object
    • toJson

      public String toJson()
      Gets a JSON representation of this document using the JsonMode.RELAXED output mode, and otherwise the default settings of JsonWriterSettings.Builder.
      Returns:
      a JSON representation of this document
      See Also:
    • toJson

      public String toJson(JsonWriterSettings settings)
      Gets a JSON representation of this document using the given JsonWriterSettings.
      Parameters:
      settings - the JSON writer settings
      Returns:
      a JSON representation of this document
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • clone

      public BsonDocument clone()
      Overrides:
      clone in class Object