Mongodb基本查询及监控
基本查看:
show dbs;#查看所有的数据库
show collectios;#查看所有的集合
use db;切换数据库,如果不存在的话就创建
db.dropDatabase();#删除数据库
增删改查:
db.lhy.insert({"name":"林青霞","age":"18","sex":"nan"});
db.zxy.insert({"username":"lqx","password":"123456"});
db.zxy.update({"username":"zxy"},{"username":"lhy","password":"123456"});
db.zxy.insert({"name":"lhy","age":"18","sex":"nv"});
db.zxy.update({"age":"18"},{"age":19});
db.zxy.update({"age":"18"},{$set:{"age":19}}); #如果要修改指定的key,就用$set
db.zxy.remove({});#删除整个集合里面的数据
db.zxy.remove({"age":19,"name":"xxx"});#删除指定的数据
db.zxy.remove({"age":"18"});
db.zxy.remove({"age":"18"},2);#删除指定的条数
db.zxy.find({"age":18,"name":"sex"});#查询指定的数据
db.zxy.find();#查看所有的;
db.zxy.find({"name":"lqx"});#查看指定的数据;
db.zxy.find({"name":"lqx","age":18});#and
db.zxy.find().pretty();#格式化数据
db.zxy.find().count();#查看行数
db.zxy.find().sort({"name":-1})#排序,1是升序,-1是降序
db.zxy.find({$or:[{"sex":"nan"},{"name":"林青霞"}]}).pretty(); #or操作
db.zxy.find({"age":{$gte:20}}).pretty();#做笔记操作,大于等于20的
$gte:大于等于
$gt:大于
$lte:小于等于
$lt:小于
profile(慢查询):
db.getProfilingLevel()#获取当然profile的级别
db.setProfilingLevel(1,2000)#记录超过2s
db.setProfilingLevel(2);
0:不开启
1:记录慢命令,默认为大于100ms
2:记录所有命令
db.system.profie.find();#查询慢查询的记录
ts: 该命令在何时执行
op: 操作类型
query: 本命令的详细信息
responseLength: 返回结果集的大小
ntoreturn: 本次查询实际返回的结果集
millis: 该命令执行耗时,以毫秒记
索引:
db.lhy.ensureIndex({"name":1})#创建一个普通索引
db.lhy.ensureIndex({"name":1,"age":1});#多列索引
db.lhy.ensureIndex({"name":1},{"unique":true});#唯一索引
db.system.indexes.find();#查看索引
db.collections.getIndexes();#查看当前集合中的索引
db.lhy.dropIndex({"name":1});#删除指定索引
db.user.dropIndexes();删除所有的索引
explain(解析):
db.lhy.find({"name":"赵小静"}).explain();#解析查询语句
millis: 耗时(毫秒
indexBounds: 所使用的索引,如果这个字段没有的话,根本就没有使用索引