以常見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 |