MySQL MongoDB
服务端 mysqld service mysqld start|stop |||||| 关闭 killall mongod 启动 mongod --dbpath=/data/mongodb/db --fork --logpath=/data/mongodb/log/mongo.log --directoryperdb --auth
客户端 mysql -u -h -p |||||| mongo admin -u root -p 123456 (-port可选) 验证后登陆
逻辑备份 mysqldump -u root -p123456 your_talbe --lock-tables >/data/data.sql |||||| mongodump --host localhost --port 27017 --out /data/mongodb/backup --collection user --db test
逻辑恢复 mysql -uroot -p123456 < backup.sql |||||| mongorestore --host localhost --port 27017 --directoryperdb /data/mongodb/backup/test --db test
验证与授权 grant all on db_name.* to user_name@’192.168.1.105’ |||||| 在admin表中 use admin db.addUser("root","123456") 也可以分别在其它表创建
取消授权 revoke all on *.* from dba@localhost; 这样不会删除用户 |||||| db.removeUser('root')
查看所有库 show databases |||||| show dbs
进入库 use test |||||| use test
删除库 drop database IF EXISTS test |||||| use test;db.dropDatabase()
查看所有表 show tables |||||| show collections
新建表 create table(int id not null primary key atuo_increment,name varchar(50) not null) |||||| 自动创建 没有固定列的概念
删除表 drop table IF EXISTS test |||||| use test;db.demo.drop() demo为collection
新建索引 create index idx_name on table(column) create unique index index_name on table_name (column_list) ; alter table table_name add index index_name (column_list) ;alter table table_name add unique (column_list) ;alter table table_name add primary key (column_list) ; |||||| db.collection.ensureIndex({name:1}) 1为顺序 复合索引 db.collection.ensureIndex( { a: 1, b: 1, c: 1 } ) db.collection.ensureIndex( { a: 1 }, { unique: true } )
删除索引 "drop index idx_name on table_name ; alter table table_name drop index index_name ;
alter table table_name drop primary key ;" |||||| db.collection.dropIndex( { name: 1 } )
新建记录 insert into tables(column…) values(value…..) |||||| db.user.insert({name:"anyunzhong",password:"123456",interest:["football","programming"]});
查找记录-所有 select * from table |||||| db.user.find()
查找记录-返回指定列 select column,column2 from table |||||| db.user.find({},{name:1,_id:0})
查找记录- = select * from table where name='hadoop' and age=20 |||||| db.user.find({name:'hadoop',age:20})
查找记录- != select * from table where name!='hadoop' |||||| db.user.find({name:{$ne:'hadoop'}})
查找记录- > select * from table where age>20 |||||| db.user.find({age:{$gt:20}})
查找记录- >= and < select * from table where age>=20 and age<40 |||||| db.user.find({age:{$gt:20,$lte:40}})
查找记录- or select * from table where age>=20 or type='IT' |||||| db.user.find({$or: [{age:{$gt:20}},{type:'IT'}]})
查找一条记录 select * from table limit 1 |||||| db.user.findOne()
超找记录 返回指定行 select * from table limit 10 |||||| db.colls.find().limit(10)
查找记录 in select * from table where id in |not in (1, 3, 5) |||||| db.user.find({id:{$in |$nin: [2,4,6]}});
查找记录 关联查询 select * from table inner join table2….. |||||| db.colls.find({"author.name":"redis"});
超找记录 分组 select * from table group by type |||||| "db.runCommand( { group:
{
ns: 'user',
key: {name: 1},
cond: {},
$reduce: function (curr,result){},
initial: {count:0,test:'zhong'}
}
} )"
查找 模糊查询 select * from users where name like "%Joe%" select * from users where name like "Joe%" |||||| db.user.find({name:/Joe/}) db.users.find({name:/^Joe/})
查找 返回行数 select count(*) from table |||||| db.user.count() db.user.find({age: {'$gt': 30}}).count()
查找 去掉重复的 select DISTINCT last_name from user |||||| db.user.distinct('last_name')
查找 结果排序 select * from user ORDER BY name desc|asc |||||| db.user.find().sort({name:-1|1})
查找 性能剖析 explain select * from table |||||| db.user.find().explain()
更新记录 update user set a=1 where b='q' |||||| db.users.update({b:'q'}, {$set:{a:1}}, false, true)
删除记录 delete from user where name='hadoop' |||||| db.users.remove({name:'hadoop'})
db.user.aggregate({$sort:{_id:1}},{$match:{name:'anyunzhong'}});
db.user.aggregate({$match:{name:'nginx'}},{$group:{_id:"$name",totalAge:{$sum:"$age"}}});