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 siguientes son extensiones que se pueden almacenar en el almacén JSON, pero que se deben representar externamente con las funciones definidas por MongoDBo 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 "serie"
java.lang.Integer 3
java.lang.Long 4294967296
java.lang.Double 6.2
java.Lang.Boolean true / false
java.lang.Byte [] { "$binary": "(base64-encoded value)", "$type": "0" }
java.util.Date (precisión de milisegundos, en Hora universal coordinada) { "$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]

Para los valores de serie Date , el cliente convierte el valor en Hora universal coordinada que se almacenará en bases de datos Db2® . 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"
		}
}