前言:
如今朋友们对“php接收json匹配关键词 如果存在则删除数组中本条数据”都比较关注,咱们都需要剖析一些“php接收json匹配关键词 如果存在则删除数组中本条数据”的相关文章。那么小编在网上网罗了一些有关“php接收json匹配关键词 如果存在则删除数组中本条数据””的相关文章,希望咱们能喜欢,你们一起来学习一下吧!本页面讨论的是MongoDB Extended JSON v2。如果想了解关于遗留版本的MongoDB Extended JSON v1,请参阅《MongoDB Extended JSON(v1)》。
如果您想了解mongo shell中数据类型的包装方法,请参阅《mongo shell中的数据类型》。
在MongoDB中,JSON格式只能直接表示BSON所支持的类型的子集。为了保留类型信息,MongoDB添加了以下扩展JSON格式:
规范模式:这是一种强调类型保留而牺牲可读性和互操作性的字符串格式。也就是说,从规范模式转换到BSON通常会保留类型信息,但在某些特定情况下可能会失去部分类型信息。松散模式:这是一种强调可读性和互操作性而牺牲类型保留的字符串格式。也就是说,从松散模式转换到BSON可能会丢失类型信息。
这两种格式符合JSON RFC,并可以被各种MongoDB驱动程序和工具解析。
MongoDB Extended JSON v2.0可以在以下驱动程序中使用:
CC++GoJavaNode.jsPerlPHPPythonScala
对于使用遗留版本MongoDB Extended JSON v1的C#和Ruby,请参考《MongoDB Extended JSON(v1)》。
此外,从MongoDB 4.2版本开始,MongoDB数据库工具也支持使用MongoDB Extended JSON v2.0格式。
二进制
更改
bsondump
使用扩展的 JSON v2.0(规范模式)格式。
mongodump
使用扩展的 JSON v2.0(规范模式)格式来存储元数据。要求 mongorestore 版本 4.2 或更高,支持 Extended JSON v2.0(规范模式或宽松模式)格式。
TIP
一般来说,使用相应版本的 mongodump 和 mongorestore。也就是说,要恢复由特定版本的 mongodump 创建的数据文件,请使用相应版本的 mongorestore。
mongoexport
默认情况下,使用扩展的 JSON v2.0(宽松模式)格式创建输出数据。
如果使用 --jsonFormat 参数,则会创建使用扩展的 JSON v2.0(规范模式)格式的输出数据。
mongoimport
默认情况下,导入数据时期望使用扩展的 JSON v2.0格式(宽松模式或规范模式)。
如果指定了 --legacy 选项,则可以识别使用扩展的 JSON v1.0 格式的数据。
TIP
一般来说,mongoexport 和 mongoimport 的版本应该匹配。也就是说,从 mongoexport 创建的数据文件要导入时,应该使用相应版本的 mongoimport 进行操作。
BSON数据类型及其相关表示方式:
以下是一些常见的BSON数据类型及其在规范和松散表示中的相关表示方式:
ArrayBinaryDate
Decimal128DocumentDoubleInt32Int64MaxKeyMinKeyObjectIdRegular ExpressionTimestamp
完整列表请参见:
数组(Array)
规范化
松散化
[ <elements> ]
<同规范化>
其中数组元素如下:
<elements>数组元素使用扩展JSON。要指定一个空数组,请省略内容 [ ]。
二进制(Binary)
规范化
松散化
{ "$binary": { "base64": "<payload>", "subType": "<t>" }}
<同规范化>
其中值的含义如下:
"<payload>":Base64编码(使用“=”填充)的有效字符串。"<t>":一个或两个字符的十六进制字符串,对应于BSON二进制子类型。可参考扩展BSON文档 以获取可用的子类型。
Date
对于年份在1970年至9999年之间(包括两端)的日期:
规范化
松散化
{ "$date": { "$numberLong": "<millis>" }}
{"$date": "<ISO-8601 Date/Time Format>"}
对于1970年之前或9999年之后的日期:
规范化
松散化
{ "$date": { "$numberLong": "<millis>" }}
<同规范化>
其中值的含义如下:
"<millis>"一个64位有符号整数的字符串。该值表示相对于纪元的毫秒数。"<ISO-8601 Date/Time Format>"一个以字符串形式表示的ISO-8601互联网日期/时间格式的日期。该日期/时间的最大时间精度为毫秒:如果小数部分不为零,则小数秒精确到三个小数位。否则,如果小数部分为零,则应省略小数秒。
Decimal128
从版本3.4开始新增。
规范化
松散化
{ "$numberDecimal": "<number>" }
<同规范化>
其中值的含义如下:
"<number>"高精度小数作为字符串。
Document
规范化
松散化
{ <content> }
<同规范化>
其中值的含义如下:
<content>使用扩展JSON的(名称:值)对。要指定一个空文档,请省略内容 { }。
Double
对于有限数字:
规范化
松散化
{ "$numberDouble": "<decimal string>" }
<non-integer number>
对于无限数字或NaN:
规范化
松散化
{"$numberDouble": <"Infinity"|"-Infinity"|"NaN"> }
<同规范化>
其中值的含义如下:
"<decimal string>"一个64位有符号浮点数的字符串。<non-integer number>一个非整数数字。整数数字将被解析为整数而不是双精度浮点数。
Int64
规范化
松散化
{ "$numberLong": "<number>" }
<integer>
其中值的含义如下:
"<number>"一个64位有符号整数的字符串。<integer>一个64位有符号整数。
Int32
规范化
松散化
{ "$numberInt": "<number>" }
<integer>
其中值的含义如下:
"<number>"一个32位有符号整数的字符串。<integer>一个32位有符号整数。
MaxKey
规范化
松散化
{ "$maxKey": 1 }
<同规范化>
最大键值的BSON数据类型比所有其他类型都要高。有关BSON类型比较顺序的更多信息,请参见比较/排序顺序。
MinKey
规范化
松散化
{ "$minKey": 1 }
<同规范化>
最小键值的BSON数据类型比所有其他类型都要低。有关BSON类型比较顺序的更多信息,请参见比较/排序顺序。
ObjectId
规范化
松散化
{ "$oid": "<ObjectId bytes>" }
<同规范化>
其中值的含义如下:
"<ObjectId bytes>"一个24个字符的大端十六进制字符串,表示ObjectId字节。
Regular Expression
规范化
松散化
{ "$regularExpression": { "pattern": "<regexPattern>", "options": "<options>" }}
<同规范化>
其中值的含义如下:
"<regexPattern>"与正则表达式模式对应的字符串。该字符串可以包含有效的JSON字符和未转义的双引号(")字符,但不能包含未转义的斜杠(/)字符。"<options>"一个指定BSON正则表达式选项('g'、'i'、'm'和's')的字符串,或一个空字符串""。转换为此表示形式时,除了('g'、'i'、'm'和's')之外的选项都将被删除。
IMPORTANT
这些选项必须按字母顺序排列。
Timestamp
规范化
松散化
{ "$timestamp": { "t": <t>, "i": <i> }}
<同规范化>
其中值的含义如下:
<t>自纪元以来的秒数的正整数。<i>一个正整数,表示增量。示例
示例字段名称
规范格式
松散格式
"_id":
{"$oid":"5d505646cf6d4fe581014ab2"}
{"$oid":"5d505646cf6d4fe581014ab2"}
"arrayField":
["hello",{"$numberInt":"10"}]
["hello",10]
"dateField":
{"$date":{"$numberLong":"1565546054692"}}
{"$date":"2019-08-11T17:54:14.692Z"}
"dateBefore1970":
{"$date":{"$numberLong":"-1577923200000"}}
{"$date":{"$numberLong":"-1577923200000"}}
"decimal128Field":
{"$numberDecimal":"10.99"}
{"$numberDecimal":"10.99"}
"documentField":
{"a":"hello"}
{"a":"hello"}
"doubleField":
{"$numberDouble":"10.5"}
10.5
"infiniteNumber"
{"$numberDouble":"Infinity"}
{"$numberDouble":"Infinity"}
"int32field":
{"$numberInt":"10"}
10
"int64Field":
{"$numberLong":"50"}
50
"minKeyField":
{"$minKey":1}
{"$minKey":1}
"maxKeyField":
{"$maxKey":1}
{"$maxKey":1}
"regexField":
{"$regularExpression":{"pattern":"^H","options":"i"}}
{"$regularExpression":{"pattern":"^H","options":"i"}}
"timestampField":
{"$timestamp":{"t":1565545664,"i":1}}
{"$timestamp":{"t":1565545664,"i":1}}
标签: #php接收json匹配关键词 如果存在则删除数组中本条数据 #php json转义 #php追加json #json字符串双引号转义 #json转义双引号