mongodb基础操作
1、命令行操作 cd /usr/local/mongodb/bin/mongo ./mongo -port 27017 概念: 集合==表 文档==数据 •show dbs:查看数据库 •show collectios:查看集合 •db.createCollection("mycollection"):创建一个集合db.createCollection("mycollection") MongoDB db.createCollection(name, options) 是用来创建集合. •use:切换数据库,不存在就创建 • insert:插入数据 •find:查找数据 •update:修改数据 •remove:删除数据 查看所有的数据库: show dbs; use db; 切换数据库,如果数据库不存在的话,创建 增:insert 如果insert一个不存在的集合的话,就会自动创建 db.wsp.insert({"name":"张晓东","age":38,"sex":"未知","car":"X-RV"}); db.wsp.insert({"name":"二汪","age":"47","hourse":"狗窝","home":"Henan"}); db.wsp.insert([{"name":"张晓东","age":38,"sex":"未知","car":"X-RV"},{"name":"张晓东","age":38,"sex":"未知","car":"X-RV"}]); #同时插入多条数据 查:find db.wsp.find({"name":"张晓东"}); db.wsp.find({"name":"张晓东","sex":"未知"});#and操作 db.wsp.find();#查询所有的数据 db.wsp.find().pretty();#格式化显示 db.wsp.find().count();#获取结果的行数 db.wsp.find().sort({"name":-1})#正序排,-1倒叙排序/1正序 删:remove db.wsp.remove({"name":"张晓东"});#删除指定的条件 db.wsp.remove({"name":"张晓东"},2);#如果有多条匹配的话,删除几条 db.wsp.remove();#删除所有的数据 改:update db.wsp.update({"name":"张晓东"},{"name":"魏乐"}); #如果有多条匹配,只修改一条,会覆盖原有的数据,原有数据就没有了 db.wsp.update({"name":"二汪"},{$set:{"name":"远方"}}); #只想改某个key的值,就使用$set db.wsp.update({"name":"张晓东"},{$set:{"name":"魏乐"}},{multi:true}); #如果有多条匹配的话 ,默认是只修改一条的,加上multi:true,会修改所有的数据。 profile#类似于mysql的慢查询 db.getProfilingLevel()#获取profile级别 db.setProfilingLevel(1,2000)# 设置profile级别 0:不开启 1:记录慢命令,默认为大于100ms 2:记录所有命令 db.system.profile.find().pretty();#获取到慢记录的结果 mongodb创建索引: db.wsp.ensureIndex({"name":1})#创建单列索引 db.wsp.ensureIndex({"name":1,"age":1})#创建多列索引 db.ew.ensureIndex({"id":1},{"unique":true});#创建唯一索引 db.syste m.indexes.find();查看数据库中所有索引 db.ew.getIndexes();#查看当前集合中的索引 Mongodb中使用dropIdenx来删除索引 db.ew.dropIndex({"id":1});删除指定索引 db.ew.dropIndexes();删除所有的索引 explain 查看执行效率 db.ew.find({"id":1}).explain(); nscanned: 被扫描的文档数量 n: 返回的文档数量 millis: 耗时(毫秒) indexBounds: 所使用的索引 通过profile可以获取到执行慢的语句 通过explain可以可以解析查询的语句 mongodb的连接数 索引 内存大小
不深思则不能造于道。不深思而得者,其得易失。