顶级字段名称不能以美元符号($)字符开头。 此外,从MongoDB 3.6开始,服务器允许存储包含点(即.)和美元符号(即$)的字段名称。...MongoDB不会将任何具有索引字段的文档插入到索引集合中,该文档的索引字段的对应索引条目将超过索引键限制,而是将返回错误。MongoDB的早期版本将插入此类文档,但不会为其创建索引。...将转储的数据还原到MongoDB中。 单调递增的分片键会限制插入性能 对于具有高插入量的集群,具有单调递增和递减性质的分片键可能会影响插入的吞吐量。...$price": 1 } ) // Invalid starting in 4.4 MongoDB已经有一个限制,即顶级字段名称不能以美元符号()开头。...1 } } ) // Invalid starting in 4.4 MongoDB已经有一个限制,即顶级字段名称不能以美元符号()开头。
特点: MongoDB的特点包括面向集合存储、模式自由、丰富的查询语句和多级索引、复制集机制、易于水平扩展、可插入存储引擎、跨平台多语言支持等。...合法的集合名不能是空字符串””, 不能含有\0字符(空字符), 这个字符表示集合名的结尾, 不能以”system.”开头, 这是为系统集合保留的前缀。...MongoDB区分类型和大小写。 MongoDB的文档不能有重复的键。 文档的键是字符串. 除了少数例外情况, 键可以使用任意UTF-8字符。...文档键命名规范: 键不能含有\0(空字符), 这个字符用来表示键的结尾。 .和$有特别的意义, 只有在特定环境下才能使用。 以下划线”_”开头的键是保留的(不是严格要求的)。...用于内嵌文档 Null 用于创建空值 Date 日期时间, 用户可以指定自己的日期时间, 创建Date对象, 传入年月日信息 Binary Data 二进制数据, 用于存储二进制数据. 4、MongoDB
以下划线”_”开头的键是保留的(不是严格要求的)。 MongoDB的文档不能有重复的键。 MongoDB不但区分类型,而且区分大小写。...比如,我们可以将以下不同数据结构的文档插入到集合中: {"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} 当第一个文档插入时...这里的不区分仅仅是物理结构的不区分,但实际开发中由于业务的分区,会产生多个逻辑集合单元。...集合名不能以”system.”开头,这是为系统集合保留的前缀。 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...3.数组 数组是一组值,它既能作为有序对象(列表、栈或队列),又能作为无序对象(数据集)。
集合名不能以"system."开头,这是为系统集合保留的前缀。 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...如果为真,则按顺序插入数组中的文档,如果其中一个文档出现错误,MongoDB将返回而不处理数组中的其余文档。如果为假,则执行无序插入,如果其中一个文档出现错误,则继续处理数组中的主文档。...插入当前日期使用 new Date() 插入的数据没有指定 _id ,会自动生成主键值 如果某字段没值,可以赋值为null,或不写该字段。 执行后,如下,说明插入一个数据成功了。...MongoDB区分类型和大小写。 MongoDB的文档不能有重复的键。 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。 文档键命名规范: 键不能含有\0 (空字符)。...这个字符用来表示键的结尾。 .和$有特别的意义,只有在特定环境下才能使用。 以下划线"_"开头的键是保留的(不是严格要求的)。
MongoDB区分类型和大小写。 MongoDB的文档不能有重复的键。 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。 文档键命名规范: 键不能含有\0 (空字符)。...这个字符用来表示键的结尾。 .和$有特别的意义,只有在特定环境下才能使用。 以下划线"_"开头的键是保留的(不是严格要求的)。...比如,可以将以下不同数据结构的文档插入到集合中: 1 {"site":"www.baidu.com"} 2 {"site":"www.google.com","name":"Google"}...集合名不能以"system."开头,这是为系统集合保留的前缀。 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...它有很高的性能以及队列过期的特性(过期按照插入的顺序)。 Capped collections 是高性能自动的维护对象的插入顺序。它非常适合类似记录日志。
示例如下: 创建日期对象时应该使用 new Date() ,而非构造函数 Date() 。...,不指 "_id" 时 MongoDB 会生成一个 ObjectId 对象。。...objNew,true 为插入,默认是 false ,不插入。...,索引也会删除, remove() 集合时,索引仍然存在 5 .mongoDB备份与恢复 5.1 mongodump命令来备份数据 该命令可以导出所有数据到指定目录中。...仲裁员不维护数据集,仲裁器的目的是通过响应其 他副本集成员的心跳和选择请求来维护副本集中的仲裁。 因为它们不存储数据集,所以仲裁器是提供副本集仲裁功能的一种好方法。
文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档) MongoDB区分类型和大小写 MongoDB的文档不能有重复的键 文档的键是字符串。...以下划线"_"开头的键是保留的(不是严格要求的)。 集合 集合就是 MongoDB 文档组,类似于 RDBMS 中的表格。...比如,我们可以将以下不同数据结构的文档插入到集合中: {“site”:“www.baidu.com”} {“site”:“www.google.com”,“name”:“Google”} {“site...集合名不能以"system."开头,这是为系统集合保留的前缀。 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...它有很高的性能以及队列过期的特性(过期按照插入的顺序). 有点和 “RRD” 概念类似。 Capped collections 是高性能自动的维护对象的插入顺序。
Mongo 基础知识与对文档的增删改查 基础知识 文档 文档就是键值对的一个有序集,例如 {"greeting":"hello"} 文档中的值可以时多种不同的数据类型;文档中的键时字符串,但有少数例外情况...键不能含有\0(空字符) .和$具有特殊含义,只能在特定环境下使用 集合 集合就是一组文档,一个集合就相当于关系数据库的一张表 动态模式 集合时动态模式的,就是说集合里面的文档可以时各式各样的。...命名 命名需要满足以下条件: 不能是空字符串 不能包含\0字符 不能以system.开头 不能包含$ 子集合 使用.来分割不同命名空间的子集合,例如一个博客系统可能包含两个集合,分别时blog.posts...// 声明post变量 post={ "title":"my blog test", "content":"blog post", "date":new Date() } //...而修改器是外层文档的键 一个键可以在任意多个条件,但是一个键不能对应多个更新修改器 特定类型的查询 null null不仅会匹配某个键的值为null的文档,而且还会匹配不包含这个键的文档。
structured query language) mongo 索引 如果不定义索引,则进行全表扫描 如果不定义索引,则进行全表扫描 集群 支持主从复制 内置副本集、分片、和自动选举 场景 关系型结构,在多行插入时需要事务保障...db.author.updateOne({"name":"mingson"},{$set:{"age":20}}) // 删除 db.author.deleteOne({"name":"bobo"}) // 返回字段,1返回,0不返回..."$ 不能超过64个字符 集合 不能包含$ 不能为空,不能包含null 不能以system.开头 字段名 不能为空,不能包含null 顶级字段不能以$开头 _id是保留字段名称 BosnTypes https...reference/bson-types.html string string bool Boolean int int long long decimal decimal double double date...date timestamp timestamp null null object array objectid regex javascripe
structured query language) mongo 索引 如果不定义索引,则进行全表扫描 如果不定义索引,则进行全表扫描 集群 支持主从复制 内置副本集、分片、和自动选举 场景 关系型结构,在多行插入时需要事务保障...db.author.updateOne({"name":"mingson"},{$set:{"age":20}}) // 删除 db.author.deleteOne({"name":"bobo"}) // 返回字段,1返回,0不返回..."$ 不能超过64个字符 集合 不能包含$ 不能为空,不能包含null 不能以system.开头 字段名 不能为空,不能包含null 顶级字段不能以$开头 _id是保留字段名称 BosnTypes https...reference/bson-types.html string string bool Boolean int int long long decimal decimal double double date...date timestamp timestamp null null object array objectid regex javascripe 课程链接 .NET云原生架构师训练营讲什么,怎么讲
,并对插入数据进行检索 > db.youmen.insert({x:10}) # 这个命令表示将数字10插入到youmen集合的x字段中 WriteResult({ "nInserted" : 1 })...这个字符用来表示键的结尾。 # .和$有特别的意义,只有在特定环境下才能使用。 # 以下划线"_"开头的键是保留的(不是严格要求的)。...比如,我们可以将以下不同数据结构的文档插入到集合中: {"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} {"site...# 集合名不能以"system."开头,这是为系统集合保留的前缀。 # 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...它有很高的性能以及队列过期的特性(过期按照插入的顺序). 有点和 "RRD" 概念类似。 Capped collections 是高性能自动的维护对象的插入顺序。
开发者能尝试大量的数据模型,从中选一个最好的。 1.2 易扩展性 应用程序数据集的大小正在以不可思议的速度增长。...#3、以下划线"_"开头的键是保留的(不是严格要求的)。 2.2 集合就是一组文档。...如果将MongoDB中的一个文档比喻为关系型数据的一行,那么一个集合就是相当于一张表 #1、集合存在于数据库中,通常情况下为了方便管理,不同格式和类型的数据应该插入到不同的集合,但其实集合没有固定的结构...集合名不能以"system."开头,这是为系统集合保留的前缀。 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...#2、自动生成_id 如果插入文档时没有"_id"键,系统会自帮你创建 一个。可以由MongoDb服务器来做这件事。 但通常会在客户端由驱动程序完成。
开发者能尝试大量的数据模型,从中选一个最好的。 2、易扩展性 应用程序数据集的大小正在以不可思议的速度增长。...#3、以下划线"_"开头的键是保留的(不是严格要求的)。 2、集合就是一组文档。...如果将MongoDB中的一个文档比喻为关系型数据的一行,那么一个集合就是相当于一张表 #1、集合存在于数据库中,通常情况下为了方便管理,不同格式和类型的数据应该插入到不同的集合,但其实集合没有固定的结构...集合名不能以"system."开头,这是为系统集合保留的前缀。 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...#2、自动生成_id 如果插入文档时没有"_id"键,系统会自帮你创建 一个。可以由MongoDb服务器来做这件事。 但通常会在客户端由驱动程序完成。
(海量数据存储,服务能力水平扩展) 从3.4开始,MongoDB支持基于片键创建数据区域。在一个平衡的集群中,MongoDB将一个区域所覆盖的读写只定向到该区域内的那些片。...集合名不能以system.开头,这是为系统集合保留的前缀。 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...如果为真,则按顺序插入数组中的文档,如果其中一个文档出现错误,MongoDB将返回而不处理数组中的其余文档。如果为假,则执行无序插入,如果其中一个文档出现错误,则继续处理数组中的主文档。...► 插入当前日期使用 new Date() ► 插入的数据没有指定 _id ,会自动生成主键值 ► 如果某字段没值,可以赋值为null,或不写该字段。...文档键命名规范: ⧫ 键不能含有\0 (空字符)。这个字符用来表示键的结尾。 ⧫ .和$有特别的意义,只有在特定环境下才能使用。 ⧫ 以下划线_开头的键是保留的(不是严格要求的)。
一个简单的文档例子如下: 需要注意的是: 文档中的键/值对是有序的。文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。MongoDB区分类型和大小写。...MongoDB的文档不能有重复的键。文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。 文档键命名规范: 键不能含有\0 (空字符)。这个字符用来表示键的结尾。....以下划线"_"开头的键是保留的(不是严格要求的)。...集合名不能以"system."开头,这是为系统集合保留的前缀。用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...它有很高的性能以及队列过期的特性(过期按照插入的顺序). 有点和 "RRD" 概念类似。 Capped collections是高性能自动的维护对象的插入顺序。
集合名不能以""system.""开头,这是为系统集合保留的前缀。 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...它有很高的性能以及队列过期的特性(过期按照插入的顺序). 有点和 ""RRD"" 概念类似。 Capped collections 是高性能自动的维护对象的插入顺序。...指定不返回的键,返回其他键 _id 键默认返回,需要主动指定 _id:0 才会隐藏 两种模式不可混用(因为这样的话无法推断其他键是否应返回) db.collection.find(query, {title...: new Date() } } } } ) 原子操作常用命令 $set 用来指定一个键并更新键值,若键不存在并创建。...插入文档超过索引键限制 如果文档的索引字段值超过了索引键的限制,MongoDB不会将任何文档转换成索引的集合。与mongorestore和mongoimport工具类似。
点击下方公众号关注并分享获取 MongoDB 最新资讯 本文福利 · 分享有奖 为了感谢本公众号读者的支持,将本文章转发到朋友圈集赞满10个,就可获得社区定制马克杯套盒1份!...数据库集合字段名千奇百怪 同一字段数据类型各不一样 业务异常可能写入“脏”数据 1.1 库命名规范 不能为空字符串 "" 不能以 $ 开头 不能包含 ....系统集合名开头 不因包含 ~!...因为每次创建索引,实际上可以理解 MongoDB 都会去扫描整个集合,通过扫描整个集合去拿到对应字段的记录,然后将这些记录插入到索引文件里面,使用批量建索引只需要扫描一次,如果分开来建索引那么就需要扫描多次...Date 类型 MongoDB 底层以 BSON 存储而按照 BSON Date/Time 数据类型定义日期时间被称为 UTC 时间,故业务计算时需注意与本地时间进行转换: 获取当前本地时间 Date
: 1 }) > db.runoob.find() { "_id" : ObjectId("5604ff74a274a611b0c990aa"), "x" : 10 } > 第一个命令将数字 10 插入到...以下划线 _ 开头的键是保留的(不是严格要求的)。...比如,我们可以将以下不同数据结构的文档插入到集合中: {"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} {"site"...集合名不能以"system."开头,这是为系统集合保留的前缀。 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。...它有很高的性能以及队列过期的特性(过期按照插入的顺序). 有点和 "RRD" 概念类似。 Capped collections是高性能自动的维护对象的插入顺序。
,直到插入数据或创建集合时数据库才被创建 use 数据库名称 默认的数据库为测试,如果你没有创建新的数据库,集合将存放在测试数据库中 数据库删除 删除当前指向的数据库 如果数据库不存在,则什么也不做...以下是可以使用的选项列表: 例1:不限制集合大小 db.createCollection("stu") 例2:限制集合大小,后面学会插入语句后可以查看效果 参数capped:默认值为false表示不设置上限...,必须是有效的UTF-8 Boolean:存储一个布尔值,true或false Integer:整数可以是32位或64位,这取决于服务器 Double:存储浮点值 Arrays:数组或列表,多个值存储到一个键...Object:用于嵌入式的文档,即一个值为一个文档 Null:存储Null值 Timestamp:时间戳 Date:存储当前日期或时间的UNIX时间格式 object id 前4个字节为当前时间戳 接下来...为每个文档提供了一个独特的_id,类型为objectID objectID是一个12字节的十六进制数 ④ 数据的操作 插入语法 db.集合名称.insert(document) 插入文档时,如果不指定
领取专属 10元无门槛券
手把手带您无忧上云