Mongodb与Msyql的对应关系

这几天学到了mongodb,于是就把mogodb和自己熟悉的mysql之间做一个对比,能更快的熟悉mogodb。

首先mogodb是非关系型数据库,也叫文档型数据库,是一种Nosql的数据库。而mysql是关系型数据库。

他们之间的名称对比如下

下面把常用的增删改查做一个对比。

 

操作名MySQLMongodb
显示数据库列表show databases;show dbs;
进去库use dbname;use dbname;
显示表列表(集合列表)show tables;show collections;
创建库create database name;无需单独创建,直接use进去
创建表(集合)create table tname;无需单独创建,直接插入数据
删除表(集合)drop table tname;首先进去该库,db.tname.drop();
删除库drop database dname;首先进入该库,db.dropDatabase();
插入记录insert into tname(id) value(2);db.tname.insert({id:2,"name":"测试"});
删除记录delete from tname where id =2;db.tname.remove({id:2});
修改/更新记录update tname set id = 3 where id=2;db.tname.update({id:2},{$set:{id:3}},false,true);
查询所有记录select * from tname;db.tname.find();
查询所有列select id from tname;db.tname.find({},{id:1});
条件查询select * from tname where id =2;db.tname.find({id:2});
条件查询select * from tname where id <2;db.tname.find({id:{$lt:2}});
条件查询select * from tname where id >=2;db.tname.find({id:{$gte:2}});
条件查询select * from tname where id=2 and name = "steve";db.tname.find({id:2,name:"steve"});
条件查询select * from tname where id=2 or name = 'steve'db.tname.find({$or:[{id:2},{name:'steve'}]});
条件查询select * from tname limit 1;db.tname.findOne();
模糊查询select * from tname where name like '%set%'db.tname.find({name:/set/});
模糊查询select * from tname where name like 'set%'db.tname.find({name:/^set/});
查询表中记录数select count(id) from tnamedb.tname.count();
获取有条件的记录数select count(id) from tname where id=2;db.tname.find({id:2}).count();
正序查询
倒叙查询
select * from tname order by id;
select * from tname order by id desc;
db.tname.find().sort({id:1});
db.tname.find().sort({id:-1});

对以上的补充:

1.db.collection.update( criteria, objNew, upsert, multi );

update()接受的四个参数含义如下:
criteria : update的查询条件哪些记录需要更新,类似于SQL update语句的where子句。
objNew : update的对象和一些更新的操作符如$,$inc等等,也可以理解为SQL update语句的set子句。
upsert : 如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

2.group分组

mysql中是 select avg(price) from goods group by  cate_id;

mongodb中是 

db.goods.aggregate([ { $group : {_id : "$cate_id", num_tutorial : {$avg : "$price"}} } ]);


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值