Documentos de JSON

Los documentos de JSON constan de campos, que son objetos pares nombre-valor. Los campos pueden estar en cualquier orden, y pueden estar anidados u organizados en matrices.

No hay obligatoriedad de estructuras de documentos. Por lo tanto, otros documentos de la misma colección pueden tener un subconjunto de estos campos, campos extra o representaciones diferentes del mismo campo.

El nombre de campo es siempre de tipo Serie y sirve como clave para el campo y, por lo tanto, debe ser exclusivo. Los valores puede ser de cualquier tipo de datos JSON soportado. Los seis primeros tipos de datos, de java.lang.String a java.util.Date, son reconocidos por JSON. Los tipos de datos que se listan a continuación son extensiones que se pueden almacenar en el almacén de JSON, pero que deben estar representados externamente por funciones definidas por MongoDB, o en una construcción de lenguaje Java™.
Tabla 1. Tipos de datos de JSON
Tipo de datos Ejemplo en formato de JSON
java.lang.String "string"
java.lang.Integer 3
java.lang.Long 4294967296
java.lang.Double 6.2
java.lang.Byte [] true / false
java.util.Date (precisión de milisegundos, en Hora universal coordinada) { "$binary": "(valor cifrado en base64)", "$type": "0" }
java.util.regex.Pattern { "$date" : "1998-03-11T17:14:12.456Z" }
java.util.regex.Pattern { "$regex" : "ab*" , "$options" : "" }
java.util.UUID { "$uuid" : "fb46f9a6-13df-41a2-a4e3-c77e85e747dd" }
com.ibm.nosql.bson.types.ObjectId { "$oid" : "51d2f200eefac17ea91d6831" }
com.ibm.nosql.bson.types.Code { "$code" : "mycode" }
com.ibm.nosql.bson.types.CodeWScope { "$code" : "i=i+1", "$scope" : {} }
com.ibm.nosql.json.api.BasicDBObject { "a" : 1, "b": { "c" : 2 } }
com.ibm.nosql.json.api.BasicDBList [1 , 2, "3", "abc", 5]

En el caso de los valores de cadena Date, el cliente convierte el valor que se almacena en las bases de datos Db2 a la Hora Universal Coordinada. También se recupera como Date en formato de Hora universal coordinada.

El ejemplo siguiente representa un documento de JSON de ejemplo con valores de matriz y objetos anidados:
9
{
	name:"Joe",
	age:25,
	phone:["555-666-7777", "444-789-1234"],
	homeAddress:
		{street:"Sycamore Avenue",
		city: “Gilroy”,
		zipcode:"95046"
		}
	businessAddress:
		{
		street:"Bailey Avenue",
		City: “San Jose”,
		zipcode:"95141"
		}
}