SQL语句与MongoDB之间的转化
【摘要】 在大数据时代,越来越多的数据开始涌现,这对关系型数据库带来了挑战。市面上主流的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)