首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MongoDB基础概念与事务支持

BSON是JSON格式的二进制表示形式,但是会比JSON拥有更多的数据类型。...fieldN: valueN } 一个键对应的值,可以是任意一种BSON数据类型data types,甚至是文档、其他文档、数组、或者文档数据 var mydoc = {...: _id 标识了一个对象ID name 指向一个内嵌文档,这个文档包含了“first”和“last”两个子键 birth 和 death 采用的是日期(Date)类型 contribs 指向一个字符串数组...views 对应的数据类型是长整型(NumberLong) 命名规则 _id :保留字段,相当于mysql中的Primary Key 字段名不可以以"$"开头 字段名不可以包含"."...字段名不可以包含"null"取值限制对于使用了索引的文档,索引列的最大长度不能超过指定的最大索引长度 排序/比较 当在不同类型的BSON格式数据进行比较或排序时,MongoDB遵循以下的优先级: MinKey

3.4K200
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MongoDB(6)- BSON 数据类型

    BSON BSON是一种二进制序列化格式,用于在 MongoDB 中存储文档和进行远程过程调用 跟 JSON 的数据结构很像,但是支持更丰富的数据类型 数据类型 数据类型 序号 别名 备注 Double...一个 4 字节的时间戳值,代表 ObjectId 的创建,以 Unix 纪元以来的秒数为单位 一个 5 字节的随机值 一个 3 字节递增计数器,初始化为随机值 给 _id 添加一个 ObjectId...的好处 对存储 ObjectId 值的 _id 字段进行排序大致相当于按创建时间排序 在 mongo shell 中,可以使用 ObjectId.getTimestamp() 方法访问 ObjectId...32 位是 time_t 值(至 1970 年依赖的秒数),后 32 位是给定秒内操作的递增序数 在单个 mongod 实例中,时间戳值始终是唯一的 new Timestamp() 在插入包含具有空时间戳值的顶级字段的文档时...不同 BSON 数据类型的比较顺序 MinKey (internal type) Null Numbers (ints, longs, doubles, decimals) Symbol, String

    1.3K10

    MongoDB基础之BSON数据类型

    MongoDB的文档类似于JSON,JSON是一种简单的额表示数据的方式,仅包含6种数据类型,分别是:null、布尔、数字、字符串、数组和对象。...MongoDB在保留JSON基本的键值对特性的基础上,添加了其他一些数据类型。在不同的编程语言下这些类型的表示有些差异。...已过时 未定义类型 ObjectId 7 objectId 对象id类型 Boolean 8 bool 布尔类型 Date 9 date 日期类型 Null 10 null 用于表示空值或者不存在的字段...数组可以包含不同数据类型的元素,实际上,常规键值对支持的值都可以作为数组的元素,甚至是套嵌数组。 文档中的数组有个特性,就是MongoDB能理解其结构,并指导如何深入数组内部对其内容进行操作。...空数组参与比较的话,会将空数组视为小于null或缺少此字段。 4、Objects MongoDB对BSON对象的比较使用以下顺序: 1.按照键值对在BSON对象中出现的顺序递归比较它们。

    9.4K30

    MongoDB基础之BSON数据类型

    MongoDB的文档类似于JSON,JSON是一种简单的表示数据的方式,仅包含6种数据类型,分别是:null、布尔、数字、字符串、数组和对象。...MongoDB在保留JSON基本的键值对特性的基础上,添加了其他一些数据类型。在不同的编程语言下这些类型的表示有些差异。...已过时 未定义类型 ObjectId 7 objectId 对象id类型 Boolean 8 bool 布尔类型 Date 9 date 日期类型 Null 10 null 用于表示空值或者不存在的字段...数组可以包含不同数据类型的元素,实际上,常规键值对支持的值都可以作为数组的元素,甚至是套嵌数组。 文档中的数组有个特性,就是MongoDB能理解其结构,并指导如何深入数组内部对其内容进行操作。...空数组参与比较的话,会将空数组视为小于null或缺少此字段。 4、Objects MongoDB对BSON对象的比较使用以下顺序: 1.按照键值对在BSON对象中出现的顺序递归比较它们。

    4.2K10

    mongo常用字段类型

    但从另一方面来说,因为只有null、布尔、数字、字符串、数组和对象这几种数据类型,所以JSON有一定局限性。...BSON BSON(Binary Serialized Document Format)是一种类JSON的二进制形式的存储格式,简称Binary JSON。...它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。它支持下面数据类型。...每个数据类型对应一个数字,在MongoDB中可以使用$type操作符查看相应的文档的BSON类型 MongoDB无须声明数据类型,全自动匹配 每种BSON类型都具有整数和字符串标识符,如下表所示: Type...空数据类型 , 一个特殊的概念,None Null 2.11 timetamp时间戳 "date" : 1528183743111 2.12 data 存储当前日期或时间格式 "date" : ISODate

    7.1K30

    MongoDB Document

    Hi~朋友,关注置顶防止错过消息 MongoDB使用BSON进行数据的存储,BSON是JSON的二进制表现形式,支持比JSON更多的数据类型。...,每一种BSON类型都有其对应的数字和字符串表示,如下: 通过$type字段我们可以查出字段为某个类型的Document,如下: db.products.find({_id: {$type: 7}})...当单元素数组和非数组字段比较时,比较的是数组中的元素和非数组字段的值 空数组小于null或者字段缺失的值 Object比较 按按照键值对递归进行比较,首先比较字段类型,如果字段类型相同比较字段名称,如果字段名称相同再比较字段值...不存在的属性会被视为空的BSON Object,因此{}和{a: null}是同等大小。...,为了保留BSON中的数据类型,MOngoDB提供MongoDB Extended JSON来进行支持,MongoDB中的扩展JSON有两种模式: 严格模式:会保留数据类型信息,可读性和交互性变低 宽松模式

    12310

    【翻译】MongoDB指南引言

    _id字段总是文档中的第一个字段,如果插入文档的_id字段不是第一个字段,那么MongoDB会将其移动到首位。 _id字段可以是除数组以外的任何BSON 类型。...警告:为了保证复制功能,不要在_id字段存储BSON 正则表达式类型。 下面是关于_id字段值的常见选项: 使用ObjectIds 类型。...BSON支持以下数据类型,每种数据类型都有一个相应的数字和字符串别名,可以使用别名和$type操作符基于类型匹配模式检索文档。...对于比较而言,MongoDB将不存在的字段看作空BSON 对象,例如,对{ } 和{ a: null }在排序中被看作是等价的。...6.2 BSON数据类型和相关的描述 下面展示了strict模式和mongo Shell模式的一些BSON数据类型及相关描述。

    4.3K60

    MongoDB 相关概念

    是最像关系型数据库(MySQL)的非关系型数据库。 它支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。...字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。...BSON和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。...Bson中,除了基本的JSON类型:string,integer,boolean,double,null,array和object,mongo还使用了特殊的数据类型。...BSON数据类型参考列表: 数据类型 描述 举例 字符串 UTF-8字符串都可表示为字符串类型的数据 {"x" : "foobar"} 对象id 对象id是文档的12字节的唯一 ID {"X" :ObjectId

    1.5K40

    MongoDB(5)- Document 文档相关

    Documents MongoDB 的文档可以理解为关系型数据库(Mysql)的一行记录 MongoDB 将数据记录为 BSON 格式的文档 BSON 是 JSON 文档的二进制表示,但它支持的数据类型更加丰富...fieldN: valueN } 字段的值可以是任何 BSON 数据类型,比如:其他文档、数组、文档数组 小栗子 var mydoc = { _id: ObjectId("...类型的值 字段名 首先必须是字符串,除此之外还有以下限制 字段名不能包含 null 字符 字段名为_id 保留用作主键 它的值在集合中必须是唯一的,是不可变的 并且可以是数组以外的任何类型 最高一级的字段名不能包含...和 $ 符号的字段 关于一个文档里面的同名字段 BSON文档可能有多个同名字段 但是大多数 MongoDB 接口用不支持重复字段名的结构(例如哈希表)表示MongoDB 如果需要操作具有多个同名字段的文档..._id 字段永远都是第一个字段 重命名字段名的更新可能会导致文档中字段的重新排序 _id 字段 在 MongoDB 中,存储在集合中的每个文档都需要一个唯一的 _id 字段作为主键 如果新插入的文档没有指定

    1.4K20

    MongoDB从入门到实战之MongoDB快速入门

    MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是MongoDB非常突出的特点。...JSON vs BSON:        JSON的局限性,比如它只有null、布尔、数字、字符串、数组和对象这几种数据类型,没有日期类型,只有一种数字类型,无法区分浮点数和整数,也没法表示正则表达式或者函数...记录文档修改或添加的具体时间。 Object 用于内嵌文档。 Null 用于创建空值。 Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。...在单个mongod实例中,时间戳记值始终是唯一的。 在复制中,oplog有一个ts字段。该字段中的值反映了使用 BSON 时间戳值的操作时间。...MongoDB索引种类: _id索引:绝大多数集合默认建立的索引;对于每个插入的数据,mongodb都会自动生成一条唯一的_id字段。 单键索引:不自动创建,值单一,例如字符串,数字或者日期。

    1.6K30

    最佳实践| 一文读懂《MongoDB 使用规范及最佳实践》原理

    所以,推荐创建尽量少的索引去满足更多的业务查询。 尽量避免对数组字段创建索引 前面说过,对存储数组的字段创建索引,实际上是多数组每个元素创建索引,同时,字段值更新也同步更新索引字段。...用例: shell 下获取 _id 的时间戳方式   _id.getTimestamp() 关于 MongoDB Date 类型 MongoDB 底层以 BSON 存储而按照 BSON Date...null 如字段 a 不存在 { }  与  {a:null }  相对等价 a 如果 a 字段不存在以及 a 等于空,它其实相对来说就是等价的。...:true}) 存在性查询 db.test.find( { item : { $exists: false } } ) null值查询 db.test.find({item:null}) 数据类型验证...实际上特别简单,不用去计算它每个字段的字节数或者有多少索引,每个索引它的字段对应的字节数,直接拿真实的环境或者跟线上环境类似的测试环境直接模拟写数据,然后直接去查看对应的一个数据大小就可以。

    2.4K50

    MongoDB系列之MongoDB基本概念

    MongoDB是一个基于分布式文档存储的非关系型数据库系统,使用C++语言编写,采用一种类似json的数据结构BSON存储。它是由字段和值对组成的数据结构。可以应用于大量数据的存储。...Index Index 索引 Table joins MongoDB不支持表关联 表关联 Primary Key Object ID 主键/MongoDB自动将_id设置为主键 3、MongoDB中的数据类型...数据类型 说明 解释 举例 Null 空值 表示空值或者未定义的对象 {“x”:null} Boolean 布尔值 true 或者false {“x”:true} Integer 整数 整型数值。...该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。 ObjectID 对象ID 对象 ID。用于创建文档的 ID。...Object 内嵌文档 文档可以作为文档中某个key的value {“x”:{"foo”:“bar”}} Min/Max keys 最小/大值 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比

    57520

    mongodb 基本概念

    文档中字段中的值可以包括其他文档,成为内嵌文档,也可以包括数组和文档数据 关于文档存储的优点有这些: 文档 即为对象,对应于许多编程语言中的本机数据类型 嵌入式文档和数组减少了对连接的需求 动态模式支持流畅的多态性...咱们一起来看看 bson 都有哪些数据类型,bson 是 json 文档的二进制表示形式,bson 包含了比 json 更多的数据类型,如下: type number 说明 Double 1 双精度浮点值...7 对象 id Boolean 8 布尔 Date 9 日期时间,unix 标准 Null 10 创建空值 Regular Expression 11 正则表达式 DBPointer 12 “dbPointer.../ 用于存储和检索超过BSON-document大小限制 (16mb) 就会使用到 GridFS 数据类型 mongodb 的简单安装 mongodb 的安装方式就不在这里赘述了,可以查看我的历史文章...({}) 删除文档 db.集合名字.find().pretty() 以更友好的方式输出 关于新建文档注意事项: 新建文档,会自动创建不存在的集合,数据库 如果不指定主键,则会自动生成主键 _id 和他对应的值

    1.6K30

    mongodb存储的数据类型(redis存储数据类型)

    文档就是键值对的一个有序集合。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。...{ {system.profile}}是可删 MongoDB 数据类型 在概念上MongoDB的文档与JavaScript中的对象相近,因而可以认为它类似与JSON。...MongoDB在JSON六种数据类型(null,布尔,数字、字符长、对象和数组)的基础上上添加了一些其他数据类型,以实现对时间、浮点数、正则函数等的操作。 下表为MongoDB中数据类型。...记录文档修改或添加的具体时间。 Object { “x” : { “y” : “foot” } } 用于内嵌文档。 Null { “x” : null } 用于创建空值。...在复制集中, oplog 有一个 ts 字段。这个字段中的值使用BSON时间戳表示了操作时间。 BSON 时间戳类型主要用于 MongoDB 内部使用。

    3.7K11

    一个小型、快速、轻量级的 .NET NoSQL 嵌入式数据库

    今天给大家推荐一个小型、快速、轻量级的 .NET NoSQL 嵌入式数据库LiteDB。LiteDB完全用 C# 托管代码开发,并且是免费和开源的,Github Star 数近 7k。...支持基于文档字段索引的快速搜索 (每个集合支持多达 16 个索引) 支持 LINQ 查询 开源,对所有人免费 - 包括商业应用 LiteDB支持类似SQL的语言进行数据和结构操作。...\Install-Package LiteDB -Version 5.0.15 2 建立实体类 public class Customer { public int Id { get; set;...Phones = new string[] { "8000-0000", "9000-0000" }, Age = 39, IsActive = true }; // 在 Name 字段上创建唯一索引...最新的V5版已内置了LiteDB.Studio,LiteDB.Studio是用于查看与编辑文档的GUI 工具

    2.3K20

    mongodb11天之屠龙宝刀(九)js函数入门:MongoDB基于js的数据类型修改

    mongodb11天之屠龙宝刀(九)js函数入门:MongoDB基于js的数据类型修改 原文连接:直通车 Mongodb并不提供Alter table这样的语句或者工具修改字段类型,只能写程序转...数据类型 基本数据类型   MongoDB的文件存储格式为BSON,同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型.与数据库打交道的那些应用。...下面是MongoDB的支持的数据类型: null null用于表示空值或者不存在的字段。 {"x":null} 布尔 布尔类型有两个值'true'和'false1'....最大值 BSON包括一个特殊类型,表示可能的最大值。shell中没有这个类型。 最小值 BSON包括一个特殊类型,表示可能的最小值。shell中没有这个类型。...不存储时区 10 Null 用于表示空值或者不存在的字段 11 Regular expression 采用js 的正则表达式语法 13 JavaScript code 可以存放Javasript

    1.5K30
    领券