MongoDB vs MySQL 基本语句

本文通过user表实例,对比分析了MongoDB与MySQL在数据查询操作上的异同,涵盖了各自的基本语句使用和特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以常见user表为例 

MongoDBMySQL
术语
数据库databasedatabase
数据库表 集合collectiontable
数据记录行 文档documentrow
数据字段 域field

column

索引indexindex
对表/集合的操作
删除db.user.drop()drop 
增加一列db.getCollection('user').insert({name:'哈哈',age:2,email:'abcd@abc.com'})

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
查询条件 distinctdb.getCollection('user').distinct("name");select distinct name from user

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值