摘要:严格模式模式是一个位有符号整数。你必须包含括号,否则将会被解释为浮点数,导致准确性的损失。例如,下列命令是把带括号和不带括号的整数值作为一个来插入当你检索文档的时候,未加引号的值已经发生了改变,加引号保证了其的准确性下一章原文来源
JSON 所支持的类型仅是 BSON 所支持的一部分(子集). 不仅保留了类型信息, MongoDB 还为 JSON 格式增加了以下扩展:
严格模式. BSON 类型的严格模式符合JSON RFC. 任何 JSON 解析器都可以将这些严格模式的表示解析为键/值对; 然而, 仅有 MongoDB 内部 JSON 解析器可以识别由格式所传达的类型信息.
mongo Shell 模式. MongoDB 内部 JSON 解析器和 mongo shell 都可以解析这个模式.
表现用于各种数据类型决定JSON 解析的上下文.
解析器和支持的格式 严格模式输入下面可以解析在严格模式下类型信息的识别.
REST 接口
mongoimport
各种 MongoDB 工具的 --query
其他JSON解析器,包含 mongo shell 和 db.eval(), 可以识别严格模式表示为键/值对, 但是没有识别类型信息.
mongo Shell模式输入下面可以解析在 mongo shell 模式下识别类型信息.
REST 接口
mongoimport
各种 MongoDB 工具的 --query
mongo shell
严格模式输出mongoexport and REST 和 HTTP 接口 在严格模式下输出数据.
mongo Shell模式输出bsondump 在 mongo Shell 模式输出.
BSON 数据类型和有关表现下面介绍 BSON 数据类型和在严格模式和 mongo Shell 模式下有关表现.
二进制data_binary
Strict Mode | mongo Shell Mode |
---|---|
{ "$binary": " |
BinData ( |
data_date
严格模式 | mongo Shell 模式 |
---|---|
{ "$date": " |
new Date ( |
在严格模式下,
MongoDB JSON 解析器当前不支持加载 ISO-8601 字符串, 表示Unix纪元之前的日期. 当格式化纪元之前的日期和过去的日期, 你的系统的 time_t 类型可以存在, 使用以下格式:
{ "$date" : { "$numberLong" : "" } }
在 Shell 模式下,
data_timestamp
严格模式 | mongo Shell 模式 |
---|---|
{ "$timestamp": { "t": |
Timestamp( |
是一个一直增长的32位无符号整数.
正则表达式data_regex
严格模式 | mongo Shell 模式 |
---|---|
{ "$regex": " |
/ |
data_oid
严格模式 | mongo Shell 模式 |
---|---|
{ "$oid": " |
ObjectId( " |
data_ref
严格模式 | mongo Shell 模式 |
---|---|
{ "$ref": " |
DBRef(" |
data_undefined
严格模式 | mongo Shell 模式 |
---|---|
{ "$undefined": true } | undefined |
JavaScript/BSON undefined 类型的表现.
你不能在文档查询中使用undefined. 想象下面的文档插入到people集合中:
db.people.insert( { name : "Sally", age : undefined } )
下面的查询返回一个错误:
db.people.find( { age : undefined } ) db.people.find( { age : { $gte : undefined } } )
然而,你可以使用$type来查询未定义的值,比如:
db.people.find( { age : { $type : 6 } } )
这个查询返回所有age字段的值为undefined的文档.
MinKeydata_minkey
严格模式 | mongo Shell 模式 |
---|---|
{ "$minKey": 1 } | MinKey |
BSON数据类型 MinKey 的表现是相比之下,小于其它所有类型. 在BSON类型比较排序上查阅比较/排序 顺序的更多信息..
MaxKeydata_maxkey
严格模式 | mongo Shell 模式 |
---|---|
{ "$maxKey": 1 } | MaxKey |
BSON数据类型 MaxKey 的表现是相比之下,大于其它所有类型. 在BSON类型比较排序上查阅比较/排序 顺序的更多信息.
NumberLong版本2.6新功能。
data_numberlong
严格模式 | mongo Shell 模式 |
---|---|
{ "$numberLong": " |
NumberLong( " |
NumberLong是一个64位有符号整数。你必须包含括号,否则将会被解释为浮点数,导致准确性的损失。
例如,下列命令是把带括号和不带括号的整数值9223372036854775807作为一个NumberLong来插入:
db.json.insert( { longQuoted : NumberLong("9223372036854775807") } ) db.json.insert( { longUnQuoted : NumberLong(9223372036854775807) } )
当你检索文档的时候,未加引号的值已经发生了改变,加引号保证了其的准确性:
db.json.find() { "_id" : ObjectId("54ee1f2d33335326d70987df"), "longQuoted" : NumberLong("9223372036854775807") } { "_id" : ObjectId("54ee1f7433335326d70987e0"), "longUnquoted" : NumberLong("-9223372036854775808") }
下一章:https://segmentfault.com/a/11...
原文来源:https://docs.mongodb.com/manu...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/18904.html
摘要:使用文档来存储数据纪录。是文档的二进制表示。文档的局限性文件有以下属性文档大小限制文档的最大值为。存储的文档的大小超过了最大值,提供。在版本之前,不会尽量维持原文档中的字段顺序。更新文档更新文档使用更新操作中指定字段去执行指定数据的修改。 MongoDB使用BSON文档来存储数据纪录。BSON是JSON文档的二进制表示。尽管它比JSON包含更多的数据类型。对于BSON规范,查看bson...
摘要:类型数字别名注意已过时布尔日期正则表达式位整数时间戳位整数要确定字段的类型,请查看在中检验类型。是位整数,代表自纪元年月日以来的毫秒数。 BSON是一个用来存储文档的二进制序列化格式,并且可以在MongoDB中远程调用。该BSON规范位于bsonspce.org。 BSON在文档中支持下列数据类型作为值。每个数据类型都有相对应的数字和字符串别名用 $type 操作执行BSON类型来查询...
摘要:概述是的交互式接口你可以使用查询和更新数据以及执行管理操作是发行版的一个组件一旦你已经安装并且启动了连接到你运行的实例在手册的大部分示例都是使用然而许多驱动程序为提供了类似的接口启动重要在尝试运行之前确保正在运行启动并使用默认端口连接到本地 概述 mongo shell 是 MongoDB的交互式 JavaScript 接口. 你可以使用 mongo shell 查询和更新数据以及执行...
摘要:文档数据库在中,一条纪录就是一个文档,它是由字段和值对组成的数据结构。尤其是在数据库系统中,对于嵌入式数据模型的支持减少了活动。它提供自动故障转移数据冗余副本集是一组服务器,保持相同的数据集,提供冗余和提高数据可用性的。 MongoDB 是一个提供了高性能、高可用、自动扩展的开源的文档数据库。 文档数据库 在MongoDB中,一条纪录就是一个文档,它是由字段和值对组成的数据结构。Mon...
摘要:在被收购之后,维护并继续发展。设置是告诉应用在目录寻找应用模板。设置告诉应用使用目录里面的类似图像文件等静态文件。我们会在应用开发过程中,保持着调试器在后台运行。这能提供高效的开发环境。我们会把回应状态设为已创建。 编者注:我们发现了有趣的系列文章《30天学习30种新技术》,正在翻译,一天一篇更新,年终礼包。下面是第23天的内容。 今天的《30天学习30种新技术》,我决定暂时放下...
阅读 2292·2021-11-25 09:43
阅读 3445·2021-10-25 09:48
阅读 1321·2021-09-13 10:24
阅读 2734·2019-08-29 15:07
阅读 1257·2019-08-29 13:14
阅读 3265·2019-08-29 12:22
阅读 1354·2019-08-29 11:32
阅读 3229·2019-08-29 11:23