集合相当于在任何其他RDM(如Oracle或MS SQL)中创建的表。单个数据库中存在集合。从介绍集合中可以看出,不强制任何类型的结构。 游标 – 这是指向查询结果集的指针。...这使得MongoDB非常灵活,能够适应实际的业务环境和需求。 即席查询 – MongoDB支持按字段、范围查询和正则表达式搜索。可以进行查询以返回文档中的特定字段。...索引-可以创建索引以提高MongoDB中搜索的性能。MongoDB文档中的任何字段都可以被索引。 复制-MongoDB可以为副本集提供高可用性。副本集由两个或多个Mongo DB实例组成。...在Mongo中建模数据时,请记住以下几点 应用程序的需求是什么?查看应用程序的业务需求,并查看应用程序所需的数据和数据类型。在此基础上,确保相应地确定文件的结构。 什么是数据检索模式?...MongoDB和RDBMS之间的差异 以下是MongoDB和RDBMS之间的一些关键术语差异 RDBMS MongoDB 不同点 Table Collection 在RDBMS中,该表包含用于存储数据的列和行
Bson中,除了基本的JSON类型:string,integer,boolean,double,null,array和object,mongo还使用了特殊的数据类型。...例如,我要查询评论内容包含“开水”的所有文档,代码如下: db.comment.find({content:/开水/}) 如果要查询评论的内容中以“专家”开头的,代码如下: db.comment.find...示例:查询评论的集合中userid字段包含1003或1004的文档 db.comment.find({userid:{$in:["1003","1004"]}}) 不包含使用$nin操作符。...示例:查询评论集合中userid字段不包含1003和1004的文档 db.comment.find({userid:{$nin:["1003","1004"]}}) ④ 条件连接查询 我们如果需要查询同时满足两个以上条件...③ 哈希索引(Hashed Indexes) 为了支持基于散列的分片,MongoDB提供了散列索引类型,它对字段值的散列进行索引。
2、查询去掉后的当前聚集集合中的某列的重复数据 db.userInfo.distinct("name"); 会过滤掉 name 中的相同数据 相当于: select distict name from...= 25; 10、查询 name 中包含 mongo 的数据 模糊查询用于搜索 db.userInfo.find({name: /mongo/}); 相当于: select * from userInfo...where name like '%mongo%'; 11、查询 name 中以 mongo 开头的 db.userInfo.find({name: /^mongo/}); 相当于: select...* from userInfo where name like 'mongo%'; 12、查询 name 中以 mongo 结尾的 db.userInfo.find({name: /mongo$/})...,那么查询时字段值的类型就应该是什么类型,比如如果字段类型是 NumberLog,那么查询时就应该执行查询类型为 NumberLog,如 db.userInfo.find({id: NumberLog
5、Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。...下表列出了 RDBMS 与 MongoDB 对应的术语: RDBMS MongoDB 数据库 数据库 表格 集合 行 文档 列 字段 表联合 嵌入文档 主键 主键 (MongoDB 提供了 key...4、高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对Map Reduce弓摩的内置支持。...> db.User.remove(id) //移除对应id的行 > db.User.remove({}) //移除所有 # aggregate MongoDB中聚合(aggregate)主要用于处理数据...索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。
Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还能支持对数据建立索引。...3 NoSQL数据库的分类 3.1 键值(key-value)存储数据库 这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。...键仍然存在,但是它们的特点是 指向了多个列。这些列是由列家族来安排的。...该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如 JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。...进入到 MongoDB 的 bin 目录 ? 执行 bin 目录中的 mongo 命令。 ?
当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。 4. 列的字符串类型可以是什么?...非关系型数据库 (NoSql),Mongo DB 很好的实现了面向对象的思想 (OO 思想), 在Mongo DB 中 每一条记录都是一个 Document 对象。...主要功能特性有: 面向集合存储,易存储对象类型的数据。 模式自由。 支持动态查询。 支持完全索引,包含内部对象。 支持查询。 支持复制和故障恢复。...Mongo 的查询优化器会分析查询表达式,并生成一个高效的查询计划。 查询监视:Mongo 包含一个监视工具用于分析数据库操作的性能。...Mongo 的路线图中已经包含对 MapReduce 引擎的内置支持。 用于对象及 JSON 数据的存储:Mongo 的 BSON 数据格式非常适合文档化格式的存储及查询。 28.
当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。 列的字符串类型可以是什么?...非关系型数据库 (NoSql),Mongo DB 很好的实现了面向对象的思想 (OO 思想), 在 Mongo DB 中 每一条记录都是一个 Document 对象。...主要功能特性有: 面向集合存储,易存储对象类型的数据。 模式自由。 支持动态查询。 支持完全索引,包含内部对象。 支持查询。 支持复制和故障恢复。...Mongo 的查询优化器会分析查询表达式,并生成一个高效的查询计划。 查询监视:Mongo 包含一个监视工具用于分析数据库操作的性能。...Mongo 的路线图中已经包含对 MapReduce 引擎的内置支持。 用于对象及 JSON 数据的存储:Mongo 的 BSON 数据格式非常适合文档化格式的存储及查询。
Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。...NoSQL 数据库分类 类型 部分代表 特点 列存储 HbaseCassandraHypertable 顾名思义,是按列存储数据的。...最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。...与其他数据库区别 对比项 MONGODB MYSQL、ORACLE 数据库 数据库(dataBase) 数据库(dataBase,schema) 表 集合(collections) 二维表(table) 表中的一行数据...//查询key类型为type的列 {key:{$regex:/pattern/}} //通过正则查询,效率较低 {$where:'this.attr.express.....'}
u 高效的传统存储方式:支持二进制数据及大型对象(如照片和视频)。 u 复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。...查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。 u 全索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。...键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型; u *模式自由:存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义; u *支持完全索引,包含内部对象。...u *自动处理碎片: 自动分片功能支持水平的数据库集群,可动态添加额外的机器 u 查询监视:Mongo包含一个监视工具用于分析数据库操作的性能 适用范围 u 适合实时的插入,更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性...传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。 · ◆传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。
4 QUERY(查询) 4.1 WHERE 在 mongo 中 我们该如何使用条件查询呢?...= '张三' 4.2 FIELDS 在正常开发中,只需要查询出一个集合中的某几个字段即可?...1 limit 2 集合中的所有数据:一共两条 第一行开始读取 读取到第二行结束 7 in(包含) 示例: db.User.find({age:{$in:[21,26,32]}}) 转换的 SQL:select...,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。...索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。
= 'zhangsan' tips:匹配正则表达式(4、5): 4、db.userInfo.find({name:/mongo/}) --查询 name 中包含 mongo 的数据, 相当于 select...* from userInfo where name like '%mongo%' 5、db.userInfo.find({name:/^mongo/}) --查询 name 中以mongo开头的,...1 * from userInfo 与 db.userInfo.find().limit(1) 7、db.userInfo.distinct("name") --查询后去掉当前集合中的某列的重复数据...页开始) 15、db.userInfo.find({sex:null}) -- 特定类型的查询,比如 null 。...--可以使用 key.index 查询数组特定位置的元素。
索引 mongo中索引跟mysql中索引同样重要,没有索引,每次查找都需要遍历全表。...mongo的索引类型包括如下几种: single filed索引:最基本的索引类型,加在单个filed上,可以指定升降序,默认_id列会自动加上该索引 Compound Index:复合索引加在多个...索引会跳过所有不包含被索引键的文档。...这个索引之所以称为 “稀疏” 是因为它并不包括集合中的所有文档 TTL Index:通过TTL索引,mongo会在过一段时间以后自动删除集合中的文档 mongo explain 与mysql...是w与n的联合索引,故w是1.0,1.0而n没有指定在查询条件中,故是MinKey,MaxKey rejectedPlans:其他执行计划(非最优而被查询优化器reject的)的详细返回
如果在 lon,lat 上创建多列索引,查询到同一经度、纬度相近的数据固然快,但附近的点并不只是经度相同。 如此下来,就要用到空间索引了。...使用 Mongo 创建空间索引的方法很简单:db.collection.createIndex( { field : "2dsphere" } );。...支持 包含、相交、临近的查询,同时它也解决了 Redis 的多条件查询问题。...Mongo 对分词模糊查询的支持不太好,要进行按地点名字模糊查询还需要想办法。 Mongo 的安全性配置是个问题。...MyISAM 强大太多,且事务、行锁、B+树索引等功能的不可替代性,这里不再讨论 MyISAM。
他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。...面向集合存储,易存储对象类型的数据。 模式自由。 支持动态查询。 支持完全索引,包含内部对象。 支持查询。 支持复制和故障恢复。 使用高效的二进制数据存储,包括大型对象(如视频等)。...- 存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。...- 高伸缩性的场景:Mongo 非常适合由数十或数百台服务器组成的数据库,Mongo 的路线图中已经包含对MapReduce 引擎的内置支持。...传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。 - 传统的商业智能应用:针对特定问题的BI 数据库会产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
(host = "localhost") mongo.is.connected(mongo) #检查是否连接成功 mongo.destroy(mongo) #断开连接 关于如何在系统中启动...一个数据库中可以有很多个集合(相当于表),每一个集合中又包含很多的documents结构。...每一个documents作为一条记录,相当于SQL中的一行,而documents内是键值对结构,且允许包含嵌套结构。...#指定集合(相当于SQL中的table) collection = db.post collection = db['post'] 以上两句等价,db的基础上连接mongodb中的集合(相当于表)。...text类型的属性中包含Mike字符串 {'$where': 'obj.fans_count == obj.follows_count'}#$where高级条件查询,自身粉丝数等于关注数 这些运算符号以及正则表达式可以用在查询
集合就是关系型书库中的表 文档对应关系型数据库中的行 文档:就是一个JSON对象,由KEY=VALUE键值对构成 {“name”:”admin”, “gender”:”男”} 集合:存储多个文档,结构不固定...gender”:”男”} {“name”:”manager”, “age”:23} {“name”:”manager”, “phone”:”16868686868”} 数据库:存储多个集合 服务器:一个服务器中可以包含多个数据库...- 在cmd窗口输入命令启动数据库 mongod --dbpath D:\软件安装\MongoDB\data\db(此处是db的路径) 打开一个新的窗口输入命令mongo,用于数据库操作 2.2.Linux...({$or:[{age:{$gt:18}, {gender:”女”}]}) 范围运算符 $in:判断指定条件是否包含在某个范围内 $nin:判断指定条件是否不包含在某个范围内 #查询年龄在18或者20....distinct(“去重域名称”, {条件}) 查询数据列表中,所有的年龄分布情况 db.student.distinct(“age”, {}) 分页 #隔n个数据查询m个数据 db.hero.find
在这个MongoDB教程中,我们将解释如何在CentOS 7上安装数据库,然后提供一些基本特性和功能的简短指南。...我们将在本指南的后面解释如何创建数据库用户并设置其权限。 有关如何在配置文件中自定义这些值和其他值的更多信息,请参阅MongoDB官方配置教程。...,请创建一个用户管理员,其中包含用于数据库的凭据: 1.打开mongoshell: mongo 2.默认情况下,MongoDB连接到一个名为test的数据库。...有关创建新集合的更多信息,请参阅db.createCollection()方法上的MongoDB文档。 注意 集合名称不应包含某些标点符号,如连字符-。...输出将列出包含当前工作数据库中数据的所有集合: exampleCollection 7.使用find方法进行条件查询,查看集合exampleCollection中特定的数据。
在主流观点中,Nosql大体分为4类,键值存储数据库,列存储数据库,文档型数据库,图形数据库。 今天主要快速的浏览了文档型数据库中目前市场占有率的最高的MongoDB数据库。...那么它是如何在存储数据的呢?MongoDB在保存数据时会使用Bson的形式,一种json的二进制化形式,并把 它与特定的Key进行关联。...基本结构 MongoDB中的文档document相当于Sql数据库中的一行记录;多个文档组成一个集合collection,相当于关系数据库的表;多个集合组合在一起,就是数据库database;...性能优化 Mongodb和一般关系型数据库一样,也支持查看执行计划explain,来了解系统实际对索引的使用情况,并根据该情况优化索引,提升查询性能。在执行计划结果中,包含如下属性。...基础查询 有 几点需要注意:不需要预先创建集合,在第一次插入数据时会自动创建;文档中可以存储任意类型数据,不需要类似alter table的语句来改变结构;每次插入时都有一个_id,类型为OBjectId
MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行...() - only for use with sharding 有关数据库和集合管理的相关命令,是最基础和最常用的,如集合查询、索引操作等。...6、查询指定数据库包含的集合名称列表 db.getCollectionNames() 结果如下所示: db.getCollectionNames() [ "u", "baseSe"...上述查询结果中,包括为集合(数据及其索引存储)分配的存储空间。...,需要加上--auth选项,如: mongod --auth --dbpath /usr/mongo/data --logfile /var/mongo.log 2、以修复模式启动 mongod --repair
使用limit()方法来读取指定数量的数据,使用skip()方法来跳过指定数量的数据db.userInfo.distinct("name") #查询去掉后的当前聚集集合中的某列的重复数据...({age: {$gte: 25}}) #查询age >= 25的记录db.userInfo.find({name: /mongo/}) #查询name中包含 mongo的数据,//相当于%...mongo开头的,select * from userInfo where name like ‘mongo%’db.userInfo.find({}, {name: 1, age: 1}) #查询指定列...类型来检索集合中匹配的数据类型,并返回结果(Double 1;String 2;Object 3)db.col.find({"title" : {$type : 2}}) 或db.col.find...索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。
领取专属 10元无门槛券
手把手带您无忧上云