MongoDB说明


查询时间显示

explain()

在查询语句最后加入explain()

db.user.find({"x":1}).explain()

其中查询结果中

millis

就是查询时间,单位毫秒


全文索引

创建全文索引

- db.article.ensureIndex({content:"text"})
- db.article.ensureIndex({content:"text",tags:"text"})
- db.article.ensureIndex({"$**":"text"})

使用全文索引查询

每个数据集合只允许创建一个全文索引

- db.article.find({$text:{$search:"Qt"}})
- db.article.find({$text:{$search:"Qt ffmpeg"}})            //或查询,包含其中一个即可
- db.article.find({$text:{$search:"Qt ffmpeg -NodeJs"}})    //查询不包含NodeJs
- db.article.find({$text:{$search:"\"Qt\" \"ffmpeg\""}})    //与查询

使用explain()工具查看查询分析

新增三个参数:queryPlanner,executionStats,allPlansExecution,分别对应概要模式,执行状态模式,所有信息模式

executionStats.executionStages.stage
/*
    TEXT:       使用全文索引查询时的stage返回
    IXSCAN:     索引扫描
    COLLSCAN:   全表扫描
    LIMIT:      使用limit限制返回数
    COUNT:      利用db.coll.count()之类进行count运算
    COUNTSCAN:  count不使用用Index进行count时的stage返回
    COUNT_SCAN: count使用了Index进行count时的stage返回
*/

executionStats.executionStages.indexName
/*
    使用的索引名
*/

导入导出

//导出
mongodump -h dbhost -d dbname -o dbdirectory
//导入
mongorestore -h dbhost -d dbname path

索引

复合索引

db.user.ensureIndex({"username":1,"age":-1})

该索引被创建后,基于 username 和 age 的查询将会用到该索引,或者是基于 username
的查询也会用到该索引
.

但是只是基于 age 的查询将不会用到该复合索引。因此可以说,
如果想用到复合索引,必须在查询条件中包含复合索引中的前 N 个索引列。

然而如果查询
条件中的键值顺序和复合索引中的创建顺序不一致的话, MongoDB 可以智能的帮助我们调
整该顺序,以便使复合索引可以为查询所用。

索引的参数

  • background - 默认false
  • unique
  • name
  • drapDups

创建索引时 background为true,以使 MongoDB 在后台创
建索引,这样的创建时就不会阻塞其他操作

但是相比而言,以阻塞方式创建索引,会使整
个创建过程效率更高,但是在创建时 MongoDB 将无法接收其他的操作。

账户权限

  1. 数据库用户角色: read、 readWrite;
  2. 数据库管理角色: dbAdmin、 dbOwner、 userAdmin;
  3. 集群管理角色: clusterAdmin、 clusterManager、 clusterMonitor、 hostManager;
  4. 备份恢复角色: backup、 restore;
  5. 所有 数据 库角 色: readAnyDatabase、 readWriteAnyDatabase、 userAdminAnyDatabase、dbAdminAnyDatabase
  6. 超级用户角色: root
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值