Mongodb能够支持复杂项目的数据库吗?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Mongodb能够支持复杂项目的数据库吗?

2016-06-15 11:56:21 2478 2

本人最近做一个O2O平台项目(含管理、预约、支付、接入微信等),当初出于人员能力、成本等考虑,选择了标准的MEAN作为技术选型。做起来确实很快,但随着项目需求的迭代,我感觉该技术选型特别是mongodb存在非常多的局限,主要如下:
1、mongodb不支持join的操作,只能简单通过populate扩展,因此,但凡有跨表的查询、统计都非常麻烦;我们现在很多是通过数据的冗余来做的,就是干脆数据字段在几个集合里都存。
2、mongodb不支持事务,因此很多回滚的操作我们现在是在业务的同步框架里处理,代码显得非常冗余,且本质上仍然不是真正意义上的回滚;
我听说业内现在有越来越多的纯MEAN的大项目,我不知道大家是怎么解决上述问题的?还是说核心业务逻辑仍然用的是关系型数据库。

取消 提交回答
全部回答(2)
  • 云建站小宋
    2021-07-09 11:56:52

    最新回答:

    我的项目有些遇到过join的问题。我的解决办法就是存储对应的ObjectId们,通过mongodb的aggregation来达到join的目的。我是用了WiredTiger引擎,所以解决了在大量读写的时候锁死数据库的问题。还有在设计数据库上面尽量避免传统的sql设计思维跟开发逻辑。一个collection尽量对应一个事件。后来因为项目的扩大,我引入了worker的开发模式,将逻辑层的关系改成独立的线程的worker,目前来说应对大量无上线并发效果不错(类似于无上线人数抢红包的效果)。一点儿拙见仅供参考。

    还有就是对已习惯sql开发模式的人mongodb的局限性会让人很不习惯。但是在大数据时代mongodb的优势是显而易见。目前来说我的项目基本结构是:

    服务器: nginx+mongodb+php-fpm+ubuntu

    主程序: MVC(php) // 值提供逻辑关系交换

    辅程序: Workers // 多线程处理对应的逻辑关系做数据库互交

    官方帮助文档地址:阿里云帮助中心

    更多参考: 阿里云官网(新用户需注册查看),可领上云红包

    0 0
  • 蛮大人123
    2019-07-17 19:39:04

    我的项目有些遇到过join的问题。我的解决办法就是存储对应的ObjectId们,通过mongodb的aggregation来达到join的目的。我是用了WiredTiger引擎,所以解决了在大量读写的时候锁死数据库的问题。还有在设计数据库上面尽量避免传统的sql设计思维跟开发逻辑。一个collection尽量对应一个事件。后来因为项目的扩大,我引入了worker的开发模式,将逻辑层的关系改成独立的线程的worker,目前来说应对大量无上线并发效果不错(类似于无上线人数抢红包的效果)。一点儿拙见仅供参考。
    还有就是对已习惯sql开发模式的人mongodb的局限性会让人很不习惯。但是在大数据时代mongodb的优势是显而易见。目前来说我的项目基本结构是:
    服务器: nginx+mongodb+php-fpm+ubuntu
    主程序: MVC(php) // 值提供逻辑关系交换
    辅程序: Workers // 多线程处理对应的逻辑关系做数据库互交

    0 0
添加回答
相关问答

2

回答

阿里云 MongoDB 云数据库技术优势是什么?

2021-12-14 22:53:17 504浏览量 回答数 2

1

回答

阿里云 MongoDB 云数据库技术优势

2021-01-08 20:18:04 542浏览量 回答数 1

0

回答

云数据库 MongoDB版使用前须知

2017-10-30 16:04:04 1276浏览量 回答数 0

0

回答

云数据库 MongoDB 版的使用前须知

2017-10-30 15:30:35 1138浏览量 回答数 0

0

回答

如何在云数据库 MongoDB中重置密码

2017-10-30 16:47:40 1491浏览量 回答数 0

0

回答

如何在云数据库 MongoDB 版获取连接实例七要素

2017-10-30 15:37:51 1629浏览量 回答数 0

0

回答

如何在云数据库MongoDB 版中获取连接实例七要素

2017-10-30 16:08:23 1459浏览量 回答数 0

0

回答

如何在云数据库MongoDB 版中设置白名单

2017-10-30 16:06:28 2214浏览量 回答数 0

0

回答

如何在云数据库 MongoDB 版设置白名单

2017-10-30 15:35:30 1951浏览量 回答数 0

0

回答

云数据库 MongoDB 版支持哪些语言的客户端进行连接?

2017-10-30 17:43:07 1507浏览量 回答数 0
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
文章
问答
问答排行榜
最热
最新
相关电子书
更多
阿里云MongoDB备份恢复功能说明和原理介绍
立即下载
Redis&MongoDB的同步、迁移以及混合云场景构建
立即下载
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化
立即下载