以常见user表为例
MongoDB | MySQL | |
---|---|---|
术语 | ||
数据库 | database | database |
数据库表 集合 | collection | table |
数据记录行 文档 | document | row |
数据字段 域 | field | column |
索引 | index | index |
对表/集合的操作 | ||
删除 | db.user.drop() | drop |
增加一列 | db.getCollection('user').insert({name:'哈哈',age:2,email:'[email protected]'}) | alter table user add column email varchar(20) |
对记录的操作语句 | ||
新增一条 | db.getCollection('user').insert({name:'哈哈',age:2}) db.getCollection('user').insertOne({name:'哈哈',age:2}) | insert into user(userid,name,age)values(1,'张三',12) |
新增多条 | db.getCollection('user').insertMany([{name:'哈1',age:2}, {name:'哈2',age:2}]) | insert into user(userid,name,age)values(1,'张1',12),(2,'张2',12) |
删除条 | db.getCollection('user').remove({name:'haha'}) | delete from user where userid = 1 |
修改 | db.getCollection('user').update({name:'哈哈'}, {$set:{name:'haha',age:34}},1,1) 四个参数 1、查询条件 2、操作 3、如果没有符合条件是否新增,1新增,0默认不增 4、如果有多条符合条件是否全部改变,1全改,0按默认书序只改第一条 db.getCollection('user').updateOne({name:'哈哈'}, {$set:{name:'haha',age:34}}) | update user set name = 'haha', age = 22 where name ='张三' 更新所有符合条件的数据 |
db.getCollection('user').updateMany({name:'哈哈'}, {$set:{name:'haha',age:34}}) 更新所有符合条件的数据 | ||
查询所有 | db.getCollection('user').find() db.getCollection('user').find({}) | select * from user |
查询特定列 | db.getCollection('user').find({},{age:1,name:1}) db.getCollection('user').find({},{age:0,name:0}); 排除这些列 第一个{}中指定查询条件 第二个{}中指定查询的列 | select age,name from user |
查询条件 等于 | db.getCollection('user').find({name:'张三'}) db.getCollection('user').find({name:{$eq:'张三'}}); 查询所有符合条件的数据,只显示有数据的列 db.getCollection('user').findOne({name:'张三'}) db.getCollection('user').findOne({age:{$eq:22}}) 按默认顺序,查询一条符合条件的数据,只显示有数据的列 | select * from user where id = 1 |
查询条件 不等于 | db.getCollection('user').find({age:{$ne:16}}); | select * from user where age != 16 |
查询条件 模糊查询 | db.getCollection('user').find({name:/哈/}) | select * from user where name like'%哈%' |
查询条件 大于 | db.getCollection('user').find({age:{$gt:16}}); | select * from user where age >16 |
查询条件 大于等于 | db.getCollection('user').find({age:{$gte:16}}); | select * from user where age >=16 |
查询条件 小于 | db.getCollection('user').find({age:{$lt:16}}); | select * from user where age <16 |
查询条件 小于等于 | db.getCollection('user').find({age:{$lte:16}}); | select * from user where age <=16 |
查询条件 且 | db.getCollection('user').find({name:'张三',age:22}) | select * from user where name ='张三' and age = 22 |
查询条件 或 | db.getCollection('user').find({$or:[{name:'张三'},{age:22}]}); | select * from user where name = '张三' or age = 22 |
查询条件 既不也不 | db.getCollection('user').find({$nor:[{name:'张三'},{age:22}]}); | select * from user where name != '张三' and age != 22 |
查询条件 包含(且) | db.getCollection('user').find({name:{$all:[/张三/,/哈/]}}) | select * from user where name like '%张三%' and name like '%哈%' |
查询条件 包含(或) | db.getCollection('user').find({name:{$in:['张三',/哈/]}}) | select * from user where name in('张三', '%哈%') |
查询条件 不包含(且) | db.getCollection('user').find({name:{$nin:['张三',/哈/]}}) | select * from user where name not like '%张三%' and name not like '%哈%' |
查询条件 存在 | db.getCollection('user').find({address:{$exists:1}}); 存在 db.getCollection('user').find({address:{$exists:0}}); 不存在 | |
查询条件 排序 | db.getCollection('user').find().sort({age:1});升序 db.getCollection('user').find().sort({age:-1});降序 | select * from user order by age asc select * from user order by age desc |
查询条件 去重 | db.getCollection('user').distinct("name"); | select distinct name from user |
分页 从n条开始,查询m条 | db.getCollection('user').find().skip(n).limit(m) | select * from user limit n,m |
查询条件 数量 | db.getCollection('user').find({name:'张三'}).count(); | select count(*) from user where name ='张三' |
聚合查询 | db.getCollection('user').aggregate([{$group:{_id:'$age',num:{$sum:1}}}]) | select age,count(1) from user group by age |
聚合查询 | ||
查询条件 distinct | db.getCollection('user').distinct("name"); | select distinct name from user |