DocumentDB - ประเภทข้อมูล
JSON หรือ JavaScript Object Notation เป็นมาตรฐานเปิดแบบข้อความที่มีน้ำหนักเบาซึ่งออกแบบมาสำหรับการแลกเปลี่ยนข้อมูลที่มนุษย์อ่านได้และยังง่ายสำหรับเครื่องในการแยกวิเคราะห์และสร้าง JSON เป็นหัวใจสำคัญของ DocumentDB เราส่ง JSON ผ่านสายไฟเราจัดเก็บ JSON เป็น JSON และเราจัดทำดัชนีโครงสร้าง JSON เพื่อให้สามารถค้นหาในเอกสาร JSON แบบเต็มได้
รูปแบบ JSON รองรับประเภทข้อมูลต่อไปนี้ -
ส. | ประเภทและคำอธิบาย |
---|---|
1 | Number รูปแบบทศนิยมที่มีความแม่นยำสองเท่าใน JavaScript |
2 | String Unicode ที่ยกมาสองครั้งพร้อมแบ็กสแลช Escape |
3 | Boolean จริงหรือเท็จ |
4 | Array ลำดับของค่า |
5 | Value อาจเป็นสตริงตัวเลขจริงหรือเท็จโมฆะเป็นต้น |
6 | Object คอลเลกชันที่ไม่เรียงลำดับของคู่คีย์: ค่า |
7 | Whitespace สามารถใช้ระหว่างโทเค็นคู่ใดก็ได้ |
8 | Null ว่างเปล่า |
ลองมาดูตัวอย่างประเภท DateTime ง่ายๆ เพิ่มวันเกิดในชั้นเรียนของลูกค้า
public class Customer {
[JsonProperty(PropertyName = "id")]
public string Id { get; set; }
// Must be nullable, unless generating unique values for new customers on client
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
[JsonProperty(PropertyName = "address")]
public Address Address { get; set; }
[JsonProperty(PropertyName = "birthDate")]
public DateTime BirthDate { get; set; }
}
เราสามารถจัดเก็บเรียกค้นและสืบค้นโดยใช้ DateTime ดังที่แสดงในโค้ดต่อไปนี้
private async static Task CreateDocuments(DocumentClient client) {
Console.WriteLine();
Console.WriteLine("**** Create Documents ****");
Console.WriteLine();
var document3Definition = new Customer {
Id = "1001",
Name = "Luke Andrew",
Address = new Address {
AddressType = "Main Office",
AddressLine1 = "123 Main Street",
Location = new Location {
City = "Brooklyn",
StateProvinceName = "New York"
},
PostalCode = "11229",
CountryRegionName = "United States"
},
BirthDate = DateTime.Parse(DateTime.Today.ToString()),
};
Document document3 = await CreateDocument(client, document3Definition);
Console.WriteLine("Created document {0} from typed object", document3.Id);
Console.WriteLine();
}
เมื่อรวบรวมและดำเนินการโค้ดด้านบนและเอกสารถูกสร้างขึ้นคุณจะเห็นว่ามีการเพิ่มวันเกิดในขณะนี้
**** Create Documents ****
Created new document: 1001
{
"id": "1001",
"name": "Luke Andrew",
"address": {
"addressType": "Main Office",
"addressLine1": "123 Main Street",
"location": {
"city": "Brooklyn",
"stateProvinceName": "New York"
},
"postalCode": "11229",
"countryRegionName": "United States"
},
"birthDate": "2015-12-14T00:00:00",
"_rid": "Ic8LAMEUVgAKAAAAAAAAAA==",
"_ts": 1450113676,
"_self": "dbs/Ic8LAA==/colls/Ic8LAMEUVgA=/docs/Ic8LAMEUVgAKAAAAAAAAAA==/",
"_etag": "\"00002d00-0000-0000-0000-566efa8c0000\"",
"_attachments": "attachments/"
}
Created document 1001 from typed object