<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 
<dfn>MongoDB Extended JSON</dfn>
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MongoDB</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ形式</anchor>の1つです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BSON</anchor> のデータモデルに相当するものを、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON応用</anchor>として、
または <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> っぽい独自ファイル形式で、
の2通りの方法で記述できます。
前者は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> ですが、後者は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONもどき</anchor>です。</p><section><h1>仕様書</h1><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">MongoDB Extended JSON — MongoDB Manual 2.6.7</cite>
(<time>2015-01-24 08:03:15 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://docs.mongodb.org/manual/reference/mongodb-extended-json/">http://docs.mongodb.org/manual/reference/mongodb-extended-json/</anchor-external></figcaption><blockquote><p>MongoDB Extended JSON</p><p>JSON can only represent a subset of the types supported by BSON. To preserve type information, MongoDB adds the following extensions to the JSON format:</p><p>Strict mode. Strict mode representations of BSON types conform to the JSON RFC. Any JSON parser can parse these strict mode representations as key/value pairs; however, only the MongoDB’s internal JSON parser also recognizes the type information conveyed by the format.</p><p>mongo Shell mode. The MongoDB’s internal JSON parser and the mongo shell can parse this mode.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en">MongoDB Extended JSON (v1) — MongoDB Manual</cite>, <time>2023-04-07T17:37:20.000Z</time>, <time>2023-04-16T11:38:06.931Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.mongodb.com/docs/manual/reference/mongodb-extended-json-v1/">https://www.mongodb.com/docs/manual/reference/mongodb-extended-json-v1/</anchor-external></p><blockquote><p>JSON can only represent a subset of the types supported by BSON. To preserve type information, MongoDB adds the following extensions to the JSON format:<snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip></p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite xml:lang="en">MongoDB Extended JSON (v2) — MongoDB Manual</cite>, <time>2023-04-07T17:37:20.000Z</time>, <time>2023-04-16T11:40:28.413Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/">https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/</anchor-external></p></section><section><h1>データ型</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規表現</anchor></p><section><h1>日時</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> v1 の
<dfn><code>data_date</code></dfn>
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO 8601のプロファイル</anchor> (パターン型の例示により規定) または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ミリ秒Unix time</anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
v2 の <dfn><code>Date</code></dfn>
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3339の日時形式</anchor>のプロファイルまたは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ミリ秒Unix time</anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 
ここで、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3339</anchor> 形式を使えるのは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">年</anchor>が [ <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1970</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">9999</n> ] のとき。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秒の小数部</anchor>は、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> のとき省略する<SHOULD xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき</SHOULD>。
そうでないときちょうど3桁。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> v1 の
<dfn><code>data_timestamp</code></dfn>,
v2
の
<dfn><code>Timestamp</code></dfn>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unix time</anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BSONにおける日時</anchor>も参照.</p></section></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 関連: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BSON</anchor></p></section><section><h1>メモ</h1></section></body></html>