Package org.bson
Class BsonDocument
- java.lang.Object
-
- org.bson.BsonValue
-
- org.bson.BsonDocument
-
- 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:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description BsonDocument()
Construct an empty document.BsonDocument(String key, BsonValue value)
Construct a new instance with a single key value pairBsonDocument(List<BsonElement> bsonElements)
Construct a new instance with the given listBsonElement
, none of which may be null.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description BsonDocument
append(String key, BsonValue value)
Put the given key and value into this document, and return the document.BsonReader
asBsonReader()
Gets the first value in the documentvoid
clear()
BsonDocument
clone()
boolean
containsKey(Object key)
boolean
containsValue(Object value)
Set<Map.Entry<String,BsonValue>>
entrySet()
boolean
equals(Object o)
BsonValue
get(Object key)
BsonValue
get(Object key, BsonValue defaultValue)
If the document does not contain the given key, return the given default value.BsonArray
getArray(Object key)
Gets the value of the key if it is a BsonArray, or throws if not.BsonArray
getArray(Object key, BsonArray defaultValue)
If the document does not contain the given key, return the given default value.BsonBinary
getBinary(Object key)
Gets the value of the key if it is a BsonBinary, or throws if not.BsonBinary
getBinary(Object key, BsonBinary defaultValue)
If the document does not contain the given key, return the given default value.BsonBoolean
getBoolean(Object key)
Gets the value of the key if it is a BsonBoolean, or throws if not.BsonBoolean
getBoolean(Object key, BsonBoolean defaultValue)
If the document does not contain the given key, return the given default value.BsonType
getBsonType()
Gets the BSON type of this value.BsonDateTime
getDateTime(Object key)
Gets the value of the key if it is a BsonDateTime, or throws if not.BsonDateTime
getDateTime(Object key, BsonDateTime defaultValue)
If the document does not contain the given key, return the given default value.BsonDecimal128
getDecimal128(Object key)
Gets the value of the key if it is a BsonDecimal128, or throws if not.BsonDecimal128
getDecimal128(Object key, BsonDecimal128 defaultValue)
If the document does not contain the given key, return the given default value.BsonDocument
getDocument(Object key)
Gets the value of the key if it is a BsonDocument, or throws if not.BsonDocument
getDocument(Object key, BsonDocument defaultValue)
If the document does not contain the given key, return the given default value.BsonDouble
getDouble(Object key)
Gets the value of the key if it is a BsonDouble, or throws if not.BsonDouble
getDouble(Object key, BsonDouble defaultValue)
If the document does not contain the given key, return the given default value.String
getFirstKey()
Gets the first key in the document.BsonInt32
getInt32(Object key)
Gets the value of the key if it is a BsonInt32, or throws if not.BsonInt32
getInt32(Object key, BsonInt32 defaultValue)
If the document does not contain the given key, return the given default value.BsonInt64
getInt64(Object key)
Gets the value of the key if it is a BsonInt64, or throws if not.BsonInt64
getInt64(Object key, BsonInt64 defaultValue)
If the document does not contain the given key, return the given default value.BsonNumber
getNumber(Object key)
Gets the value of the key if it is a BsonNumber, or throws if not.BsonNumber
getNumber(Object key, BsonNumber defaultValue)
If the document does not contain the given key, return the given default value.BsonObjectId
getObjectId(Object key)
Gets the value of the key if it is a BsonObjectId, or throws if not.BsonObjectId
getObjectId(Object key, BsonObjectId defaultValue)
If the document does not contain the given key, return the given default value.BsonRegularExpression
getRegularExpression(Object key)
Gets the value of the key if it is a BsonRegularExpression, or throws if not.BsonRegularExpression
getRegularExpression(Object key, BsonRegularExpression defaultValue)
If the document does not contain the given key, return the given default value.BsonString
getString(Object key)
Gets the value of the key if it is a BsonString, or throws if not.BsonString
getString(Object key, BsonString defaultValue)
If the document does not contain the given key, return the given default value.BsonTimestamp
getTimestamp(Object key)
Gets the value of the key if it is a BsonTimestamp, or throws if not.BsonTimestamp
getTimestamp(Object key, BsonTimestamp defaultValue)
If the document does not contain the given key, return the given default value.int
hashCode()
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.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.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.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.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.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.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.boolean
isEmpty()
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.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.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.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.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.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.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.Set<String>
keySet()
static BsonDocument
parse(String json)
Parses a string in MongoDB Extended JSON format to aBsonDocument
BsonValue
put(String key, BsonValue value)
void
putAll(Map<? extends String,? extends BsonValue> m)
BsonValue
remove(Object key)
int
size()
<C> BsonDocument
toBsonDocument(Class<C> documentClass, CodecRegistry codecRegistry)
Render the filter into a BsonDocument.String
toJson()
Gets a JSON representation of this document using theJsonMode.STRICT
output mode, and otherwise the default settings ofJsonWriterSettings.Builder
.String
toJson(JsonWriterSettings settings)
Gets a JSON representation of this document using the givenJsonWriterSettings
.String
toString()
Collection<BsonValue>
values()
-
Methods inherited from class org.bson.BsonValue
asArray, asBinary, asBoolean, asDateTime, asDBPointer, asDecimal128, asDocument, asDouble, asInt32, asInt64, asJavaScript, asJavaScriptWithScope, asNumber, asObjectId, asRegularExpression, asString, asSymbol, asTimestamp, isArray, isBinary, isBoolean, isDateTime, isDBPointer, isDecimal128, isDocument, isDouble, isInt32, isInt64, isJavaScript, isJavaScriptWithScope, isNull, isNumber, isObjectId, isRegularExpression, isString, isSymbol, isTimestamp
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
Constructor Detail
-
BsonDocument
public BsonDocument(List<BsonElement> bsonElements)
Construct a new instance with the given listBsonElement
, none of which may be null.- Parameters:
bsonElements
- a list ofBsonElement
-
BsonDocument
public BsonDocument(String key, BsonValue value)
Construct a new instance with a single key value pair- Parameters:
key
- the keyvalue
- the value
-
BsonDocument
public BsonDocument()
Construct an empty document.
-
-
Method Detail
-
parse
public static BsonDocument parse(String json)
Parses a string in MongoDB Extended JSON format to aBsonDocument
- Parameters:
json
- the JSON string- Returns:
- a corresponding
BsonDocument
object - See Also:
JsonReader
- MongoDB documentation
- MongoDB Extended JSON
-
toBsonDocument
public <C> BsonDocument toBsonDocument(Class<C> documentClass, CodecRegistry codecRegistry)
Description copied from interface:Bson
Render the filter into a BsonDocument.- Specified by:
toBsonDocument
in interfaceBson
- 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 returnedBsonDocument
based on some knowledge of the document class.codecRegistry
- the codec registry. This parameter may be ignored, but it may be used to look upCodec
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 classBsonValue
- Returns:
- the BSON type, which may not be null (but may be BSONType.NULL)
-
containsKey
public boolean containsKey(Object key)
- Specified by:
containsKey
in interfaceMap<String,BsonValue>
-
containsValue
public boolean containsValue(Object value)
- Specified by:
containsValue
in interfaceMap<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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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 keydefaultValue
- 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
-
values
public Collection<BsonValue> values()
-
append
public BsonDocument append(String key, BsonValue value)
Put the given key and value into this document, and return the document.- Parameters:
key
- the keyvalue
- 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)
-
hashCode
public int hashCode()
-
toJson
public String toJson()
Gets a JSON representation of this document using theJsonMode.STRICT
output mode, and otherwise the default settings ofJsonWriterSettings.Builder
.- Returns:
- a JSON representation of this document
- See Also:
toJson(JsonWriterSettings)
,JsonWriterSettings
-
toJson
public String toJson(JsonWriterSettings settings)
Gets a JSON representation of this document using the givenJsonWriterSettings
.- Parameters:
settings
- the JSON writer settings- Returns:
- a JSON representation of this document
-
clone
public BsonDocument clone()
-
-