SQL语句与MongoDB之间的转化

举报
蜡笔不辣 发表于 2021/01/04 22:15:28 2021/01/04
【摘要】 在大数据时代,越来越多的数据开始涌现,这对关系型数据库带来了挑战。市面上主流的Mysql、Oracle等关系型数据库,Redis等非关系型数据库,对于过度的访问和过量的存储带来了大的考验。PostgreSQL中和Mysql过度访问的问题,但是对于越来越多的非关系型数据,像语音、视频等,则难存储,因此,采用MongoDB替代它成了我的选择。从PostgreSQL转化为MongoDB最困难的就是...

在大数据时代,越来越多的数据开始涌现,这对关系型数据库带来了挑战。

市面上主流的Mysql、Oracle等关系型数据库,Redis等非关系型数据库,对于过度的访问和过量的存储带来了大的考验。

PostgreSQL中和Mysql过度访问的问题,但是对于越来越多的非关系型数据,像语音、视频等,则难存储,因此,采用MongoDB替代它成了我的选择。

从PostgreSQL转化为MongoDB最困难的就是语句的转化,因此做个集合方便使用:


SQL MongoDB
SELECT * FROM user WHERE id='1' db.find({'id':'1'})
INSERT INOT user (`name`, `age`) values (’lihai’,25) db.user.insert({‘name’ : ’lihai’, ‘age’ : 25})
DELETE FROM user WHERE age < 30 db.user.remove({‘age’ : {$lt : 30}})
UPDATE user SET `age` = `age` + 3 WHERE `name` = ’starlee’ db.user.update({‘name’ : ’starlee’}, {$inc : {‘age’ : 3}})
SELECT * FROM user ORDER BY age DESC db.user.find().sort({‘age’ : -1})
SELECT name, sum(marks) FROM user GROUP BY name db.user.group({
key : {‘name’ : true},
cond: {‘name’ : ‘foo’},
reduce: function(obj,prev) { prev.msum += obj.marks; },
initial: {msum : 0}
});
CREATE INDEX myindexname ON users(name,ts DESC) db.users.ensureIndex({name:1,ts:-1})

目前大概使用了这么多,包括基本的增删改查,以后用到了就可以参照修改。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。