mongodb我的总结

mongodb 是一个文档型,非关系型数据库。

随着你们对大数据的整合,分析。mongodb 的使用愈来愈多。主要体如今分布式架构中。javascript

什么是分布式?

把数据分配在多台服务器上的程序,称为分布式。<br>java

常见的非关系型数据库有哪些?

couchdb mongodb redis voldmort oracle cassandra hbase riak neo4j infogridmysql

关系型数据库mysql数据结构对比非关系型数据库mongodb数据结构?

关系型数据库为 数据库,表, 行 redis

mongodb 数据结构为 数据库,集合,文档sql

mongodb 有哪些特性?

事务支持 MongoDB 目前只支持单文档事务,须要复琐事务支持的场景暂时不适合mongodb

灵活的文档模型 JSON 格式存储最接近真实对象模型,对开发者友好,方便快速开发迭代数据库

高可用复制集 知足数据高可靠、服务高可用的需求,运维简单,故障自动切换json

可扩展分片集群 海量数据存储,服务能力水平扩展服务器

高性能 mmapv一、wiredtiger、mongorocks(rocksdb)、in-memory 等多引擎支持知足各类场景需求数据结构

强大的索引支持 地理位置索引可用于构建 各类 O2O 应用、文本索引解决搜索的需求、TTL索引解决历史数据自动过时的需求

Gridfs 解决文件存储的需求

aggregation & mapreduce :解决数据分析场景需求,用户能够本身写查询语句或脚本,将请求都分发到 MongoDB 上完成

在什么业务场景下,须要mongodb?

mongodb 内部支持数据类型?

只有清楚数据类型才更方便使用

mongodb 中文档已bson 结构存储,bson (binary json)是一种相似json的二进制存储格式,可是bson 有json没有的一些数据类型。好比 Date 和 binData。

bson 中 value 类型包含: double string object array binData objectId bool date null regex javascript javascriptWithScope int timestamp long

经常使用命令集合?

建立数据库 use testDB;

建立文档 db.createCollection("account");

文档的CURD

db.collection.find(); db.collection.insert(); db.collection.insertMany(); db.collection.update(); db.collection.remove(); db.collection.deleteMany();

支持的索引类型

单一索引 覆盖索引 惟一索引,复合惟一索引 稀疏索引 特殊索引 固定集合 循环游标 TTL锁引 全文索引 地理索引

建立惟一索引

db.coll.ensureIndex({"email":1},{"unique":true}) 建立索引语法,字段,和boolean值,上面的例子,建立email索引同时,添加了惟一的约束。

什么是TTL 索引?

Time to live ,生命周期索引。 能够设置 文档的生命周期 只能针对 日期类型字段上设置一个过时时间。秒为单位,好比设置过时时间 3600 s。那么mongo每秒检查一次数据,发现时间大于3600s。就经过索引找到数据,对该条数据进行删除。

db.log_events.createIndex( { "createTime": 1 }, ---字段名称 { expireAfterSeconds: 60*60 } ) ---过时时间(单位秒)

建立一个固定集合

db.createCollection("capped_coll2", { capped : true, size : 1000, max : 5 } )

必须三个参数同时存在,否则虽然返回成功,但是 db.capped_coll2.isCapped(); 会发现不是固定集合。 Size 集合大小,单位字节,max 最多的条数。 当集合中数据满之后。新插入的文档会替换最老的文档,适合作log或者排行榜展现数据。

如何分析索引

explain 关键字分析索引

db.products.explain("allPlansExecution").update( { quantity: { $lt: 1000}, category: "apparel" }, { $set: { reorder: true } } )

会输出查询分析器的执行状况,方便分析将执行的语句

强制mongodb 使用指定索引 hint

db.products.explain("executionStats").find( { quantity: { $gt: 50 }, category: "apparel" } ).sort( { quantity: -1 } ).hint( { category: 1, quantity: -1 } )

将强制先使用 category索引,后使用quantity索引

相关文章
相关标签/搜索