JSON-Dokumente
JSON-Dokumente bestehen aus Feldern, bei denen es sich um Name/Wert-Paar-Objekte handelt. Die Felder können in beliebiger Reihenfolge und in Arrays verschachtelt oder angeordnet sein.
Dokumentstrukturen werden nicht durchgesetzt. Andere Dokumente in derselben Objektgruppe können daher eine Untergruppe dieser Felder, zusätzliche Felder oder unterschiedliche Darstellungen desselben Felds enthalten.
Der Feldname hat immer den Typ "Zeichenfolge" und dient als Schlüssel für das Feld und muss daher eindeutig sein. Die Werte können beliebige der unterstützten JSON-Datentypen sein. Die ersten sechs Datentypen von java.lang.String bis java.util.Datewerden von JSON erkannt. Die folgenden Typen sind Erweiterungen, die im JSON-Speicher abgelegt werden können, aber extern mit den MongoDB-defined Funktionen oder in einem Java™-Sprachkonstrukt dargestellt werden müssen.
| Datentyp | Beispiel im JSON-Format |
|---|---|
| java.lang.String | "Zeichenfolge" |
| java.lang.Integer | 3 |
| java.lang.Long | 4.294.967.296 |
| java.lang.Double | 6.2 |
| java.Lang.Boolean | wahr/falsch |
| java.lang.Byte [] | { "$binary": "(base64-encoded value)", "$type": "0" } |
| java.util.Date (Genauigkeit in Millisekunden, in koordinierter Weltzeit) | { "$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] |
Bei Date -Zeichenfolgewerten konvertiert der Client den Wert in Coordinated Universal Time, um in Db2® -Datenbanken gespeichert zu werden. Sie wird auch als Date im UTC-Format abgerufen.
Das folgende Beispiel zeigt ein JSON-Beispieldokument mit Array-Werten und verschachtelten Objekten:
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"
}
}