mongodb与mysql命令详细对比
mysqld
mongod
服务器守护进程
mysql
mongo
客户端工具
mysqldump
mongodump
逻辑备份工具
mysql
mongorestore
逻辑恢复工具
db.repairDatabase()
修复数据库
mysqldump
mongoexport
数据导出工具
source
mongoimport
数据导入工具
grant*privilegeson*.*to…
Db.addUser()
Db.auth()
新建用户并权限
showdatabases
showdbs
显示库列表
Showtables
Showcollections
显示表列表
Showslavestatus
Rs.status
查询主从状态
Createtableusers(aint,bint)
db.createCollection("mycoll",{capped:true,
size:100000})另:可隐式创建表。
创建表
CreateINDEXidxnameONusers(name)
db.users.ensureIndex({name:1})
创建索引
CreateINDEXidxnameONusers(name,tsDESC)
db.users.ensureIndex({name:1,ts:-1})
创建索引
Insertintousersvalues(1,1)
db.users.insert({a:1,b:1})
插入记录
Selecta,bfromusers
db.users.find({},{a:1,b:1})
查询表
Select*fromusers
db.users.find()
查询表
Select*fromuserswhereage=33
db.users.find({age:33})
条件查询
Selecta,bfromuserswhereage=33
db.users.find({age:33},{a:1,b:1})
条件查询
select*fromuserswhereage<33
db.users.find({"age":{$lt:33}})
条件查询
select*fromuserswhereage>33andage<=40
db.users.find({"age":{$gt:33,$lte:40}})
条件查询
select*fromuserswherea=1andb="q"
db.users.find({a:1,b:"q"})
条件查询
select*fromuserswherea=1orb=2
db.users.find({$or:[{a:1},{b:2}]})
条件查询
select*fromuserslimit1
db.users.findOne()
条件查询
select*fromuserswherenamelike"%Joe%"
db.users.find({name:/Joe/})
模糊查询
select*fromuserswherenamelike"Joe%"
db.users.find({name:/^Joe/})
模糊查询
selectcount(1)fromusers
Db.users.count()
获取表记录数
selectcount(1)fromuserswhereage>30
db.users.find({age:{"$gt":30}}).count()
获取表记录数
selectDISTINCTlast_namefromusers
db.users.distinct("last_name")
去掉重复值
select*fromusersORDERBYname
db.users.find().sort({name:-1})
排序
select*fromusersORDERBYnameDESC
db.users.find().sort({name:-1})
排序
EXPLAINselect*fromuserswherez=3
db.users.find({z:3}).explain()
获取存储路径
updateusersseta=1whereb="q"
db.users.update({b:"q"},{$set:{a:1}},false,true)
更新记录
updateusersseta=a+2whereb="q"
db.users.update({b:"q"},{$inc:{a:2}},false,true)
更新记录
deletefromuserswherez="abc"
db.users.remove({z:"abc"})
删除记录
db.users.remove()
删除所有的记录
dropdatabaseIFEXISTStest;
usetest
db.dropDatabase()
删除数据库
droptableIFEXISTStest;
db.mytable.drop()
删除表/collection
db.addUser(‘test","test")
添加用户
readOnly-->false
db.addUser(‘test","test",true)
添加用户
readOnly-->true
db.addUser("test","test222")
更改密码
db.system.users.remove({user:"test"})
或者db.removeUser("test")
删除用户
useadmin
超级用户
db.auth(‘test",‘test")
用户授权
db.system.users.find()
查看用户列表
showusers
查看所有用户
db.printCollectionStats()
查看各collection的状态
db.printReplicationInfo()
查看主从复制状态
showprofile
查看profiling
db.copyDatabase("mail_addr","mail_addr_tmp")
拷贝数据库
db.users.dataSize()
查看collection数据的大小
db.users.totalIndexSize()
查询索引的大小
MongoDB对数据的操作很丰富,下面做一些举例说明,内容大部分来自官方文档,另外有部分为自己理解。
查询colls所有数据
db.colls.find()//select*fromcolls
通过指定条件查询
db.colls.find({‘last_name":‘Smith"});//select*fromcollswherelast_name="Smith"
指定多条件查询
db.colls.find({x:3,y:“foo”});//select*fromcollswherex=3andy="foo"
指定条件范围查询
db.colls.find({j:{$ne:3},k:{$gt:10}});//select*fromcollswherej!=3andk>10
查询不包括某内容
db.colls.find({},{a:0});//查询除a为0外的所有数据
支持<,<=,>,>=查询,需用符号替代分别为$lt,$lte,$gt,$gte
db.colls.find({“field”:{$gt:value}});
db.colls.find({“field”:{$lt:value}});
db.colls.find({“field”:{$gte:value}});
db.colls.find({“field”:{$lte:value}});
也可对某一字段做范围查询
db.colls.find({“field”:{$gt:value1,$lt:value2}});
不等于查询用字符$ne
db.colls.find({x:{$ne:3}});
in查询用字符$in
db.colls.find({“field”:{$in:array}});
db.colls.find({j:{$in:[2,4,6]}});
notin查询用字符$nin
db.colls.find({j:{$nin:[2,4,6]}});
取模查询用字符$mod
db.colls.find({a:{$mod:[10,1]}})//wherea%10==1
$all查询
db.colls.find({a:{$all:[2,3]}});//指定a满足数组中任意值时
$size查询
db.colls.find({a:{$size:1}});//对对象的数量查询,此查询查询a的子对象数目为1的记录
$exists查询
db.colls.find({a:{$exists:true}});//存在a对象的数据
db.colls.find({a:{$exists:false}});//不存在a对象的数据
$type查询$type值为bsonhttp://bsonspec.org/数据的类型值
db.colls.find({a:{$type:2}});//匹配a为string类型数据
db.colls.find({a:{$type:16}});//匹配a为int类型数据
使用正则表达式匹配
db.colls.find({name:/acme.*corp/i});//类似于SQL中like
内嵌对象查询
db.colls.find({“author.name”:“joe”});
1.3.3版本及更高版本包含$not查询
db.colls.find({name:{$not:/acme.*corp/i}});
db.colls.find({a:{$not:{$mod:[10,1]}}});
sort()排序
db.colls.find().sort({ts:-1});//1为升序2为降序
limit()对限制查询数据返回个数
db.colls.find().limit(10)
skip()跳过某些数据
db.colls.find().skip(10)
snapshot()快照保证没有重复数据返回或对象丢失
count()统计查询对象个数
db.students.find({‘address.state":‘CA"}).count();//效率较高
db.students.find({‘address.state":‘CA"}).toArray().length;//效率很低
group()对查询结果分组和SQL中groupby函数类似
distinct()返回不重复值
相关文章
- 掌握MySQL服务器命令以上级效率运行(mysql服务器命令)
- MySQL优化写入技巧(mysql写入优化)
- MySQL实现启动服务的命令行操作(mysql启动服务命令)
- 文件MySQL导出文本文件的简便方法(mysql导出文本)
- Mac终端上MySQL指令操作实战(mac终端mysql命令)
- 命令MySQL使用CMD命令执行SQL查询(mysql执行cmd)
- 使用命令行快速安装MySQL数据库(命令安装mysql数据库)
- MySQL同步任务:实现数据同步的命令简介(mysql同步命令)
- Mysql完全指南 打开一个功能强大的数据库大门(mysql的好书)
- MySQL中使用AND命令的条件语句(mysql中且的条件命令)
- MySQL实现两表求和操作(mysql 两表求和)
- 命令行连接MySQL数据库的简易操作(cmd进mysql的命令)
- MySQL命令使用小白必备的BAT文件(bat mysql命令)
- 利用cmd命令操作MySQL一种超简单的连接方式(cmd怎样连接mysql)
- ASP连接MySQL编码入门实战(asp链接mysql代码)
- 命令行下轻松卸载MySQL(cmd命令卸载mysql)
- MySQL安装教程及下载安装指南(mysql下载安装指南)
- 解锁MySQL功夫周一零点MySQL技巧攻略(mysql 上周一 0点)
- MYSQL离线使用方法大揭秘不联网也能愉快地使用MySQL(mysql 不联网吗)