Maison > Questions et réponses > le corps du texte
本人最近做一个O2O平台项目(含管理、预约、支付、接入微信等),当初出于人员能力、成本等考虑,选择了标准的MEAN作为技术选型。做起来确实很快,但随着项目需求的迭代,我感觉该技术选型特别是mongodb存在非常多的局限,主要如下:
1、mongodb不支持join的操作,只能简单通过populate扩展,因此,但凡有跨表的查询、统计都非常麻烦;我们现在很多是通过数据的冗余来做的,就是干脆数据字段在几个集合里都存。
2、mongodb不支持事务,因此很多回滚的操作我们现在是在业务的同步框架里处理,代码显得非常冗余,且本质上仍然不是真正意义上的回滚;
我听说业内现在有越来越多的纯MEAN的大项目,我不知道大家是怎么解决上述问题的?还是说核心业务逻辑仍然用的是关系型数据库。
我想大声告诉你2017-05-02 09:19:43
Certains de mes projets ont rencontré des problèmes de jointure. Ma solution consiste à stocker les ObjectIds correspondants et à atteindre l'objectif de adhésion via l'agrégation de mongodb. J'ai utilisé le moteur WiredTiger, j'ai donc résolu le problème du verrouillage de la base de données lors de grandes quantités de lecture et d'écriture. Essayez également d'éviter la réflexion traditionnelle en matière de conception SQL et la logique de développement lors de la conception de la base de données. Une collection doit essayer de correspondre à un événement. Plus tard, en raison de l'expansion du projet, j'ai introduit le modèle de développement des travailleurs et modifié la relation entre les couches logiques en travailleurs avec des threads indépendants. À l'heure actuelle, il a un bon effet pour gérer un grand nombre de concurrence sans connexion en ligne (. similaire à l'effet de récupérer des enveloppes rouges sans personne en ligne). Juste un petit humble avis à titre indicatif.
De plus, les limitations de mongodb seront très inconfortables pour les personnes habituées au modèle de développement SQL. Mais à l’ère du big data, les avantages de mongodb sont évidents. À l'heure actuelle, la structure de base de mon projet est :
Serveur : nginx+mongodb+php-fpm+ubuntu
Programme principal : MVC(php) // Les valeurs fournissent un échange de relations logiques
Programme auxiliaire : Workers // Traitement multithread des relations logiques correspondantes pour l'interaction avec la base de données
巴扎黑2017-05-02 09:19:43
N'y avez-vous pas pensé lors du choix de la technologie ? Il n'est pas nécessaire d'utiliser uniquement mongo, plusieurs bibliothèques peuvent coexister
漂亮男人2017-05-02 09:19:43
Tout le monde, en fait ma question n'est pas de savoir si Mongo est défectueux ou s'il doit être remplacé. En supposant plutôt que la base de données ne soit pas commutée, existe-t-il une solution au problème ci-dessus ? Je suis sûr qu'il y en a d'autres dans l'industrie qui ont rencontré et résolu ces problèmes.
仅有的幸福2017-05-02 09:19:43
Mongodb n'est pas adapté à ce genre de projet. Il convient au type de requête, et c'est simple Pour les projets avec des relations fortes, des bases de données relationnelles sont toujours utilisées