MongoDB

MongoDB

应用程序和数据/ 数据存储/ 数据库

Decision 关于 MongoDB,GraphQL,Node.js

Avatar of juank11memphis

我刚刚完成了我的新爱好项目的第一个版本:电影迷。It is a minimalist online movie catalog for you to save the movies you want to see and for rating the movies you already saw.This is just the beginning as I am planning to add more features on the lines of sharing and discovery

For the后端I decided to useNode.js,绘图语言andMongoDB:

  1. Node.jshas a huge community so it will always be a safe choice in terms of libraries and finding solutions to problems you may have

  2. 绘图语言because I needed to improve my skills with it and because I was never comfortable with the usual REST approach.我相信graphql是一个更好的选择,因为它感觉编写API更自然,it improves the development velocity,根据定义,它修复了RESTAPI上常见的过度获取和不足获取问题,and on top of that,社区越来越大。

  3. MongoDB是我对数据库的选择,因为我在数据库方面已经有了很多经验,而且,despite of some bad reputation it has acquired in the last months,我仍然相信它是一个功能强大的数据库,至少有一个非常长的用例列表,比如我的网站所需的用例列表。

37 up亚博平台怎么样votes · 28 评论 · 17.2K views

Decision at FundsCorner 关于 扎帕AWS Lambda,SQLAlchemyPython,Amazon SQS,Node.jsMongoDB Stitch,PostgreSQL,MongoDB

耶亚巴拉吉的化身
CTO at 财务总监 ·

Recently we were looking at a few robust and cost-effective ways of replicating the data that resides in our productionMongoDB到APostgreSQL数据仓库和商业智能数据库。

我们为完成这项工作的最佳工具设置了以下标准:-数据复制必须接近实时,然而,它不应该影响生产数据库——数据复制必须是水平可伸缩的(基于负载)。asynchronous & crash-resilient

Based on the above criteria,我们选择了以下工具来执行端到端数据复制:

We choseMongoDB Stitch用于获取源数据库中的更改。It is the serverless platform from MongoDB.MongoDB Stitch提供的服务之一是Stitch触发器。使用缝合触发器,可以执行无服务器函数(在Node.js) in real time in response to changes in the database.When there are a lot of database changes,Stitch automatically "feeds forward" these changes through an asynchronous queue.

We chose Amazon SQS as the pipe / message backbone for communicating the changes from MongoDB to our own replication service.有趣的是,MongoDB stitch offers integration with AWS services.

Node.js函数,我们编写了将数据库更改(插入/更新/删除/替换)传递到Amazon SQS.

接下来,我们在蟒蛇听SQS消息事件,获取数据有效负载并将数据库更改镜像到目标数据仓库。我们通过模拟目标表结构实现了源数据到目标数据的转换。SQLAlchemy.We deployed this micro-service asAWS Lambda具有Zappa.With Zappa,将服务部署为事件驱动的水平可伸缩lambda服务非常简单。

最后,we got to implement a highly scalable near realtime Change Data Replication service that "works" and deployed to production in a matter of few days!

23 up亚博平台怎么样votes · 22.1K views

Decision at ReadMe.io 关于 撰写,MongoLab,MongoDB Atlas,PostgreSQL,MySQL,MongoDB

Avatar of gkoberger

We went withMongoDB,几乎是错的。我以前从未用过,but I knew I wanted the *EAN part of the MEAN stack,so why not go all in.我来自SQL的背景(首先MySQL,thenPostgreSQL),so I definitely abused Mongo at first...通过尝试把它变成比它应该的更关系化的东西。但是,嘿,data issupposed为了建立关系,so there wasn't really any way to get around that.

我很喜欢MongoDB,我很讨厌。我仍然不知道我们是否做出了正确的决定。We've been able to build much quicker,但我们也经历了一些成长的痛苦。我们的数据库位于MongoDB Atlas,我也说不出什么好的话来。We had triedMongoLabandComposebefore it,and withMongoDB AtlasI finally feel like things are in a good place.I don't know if I'd use it for a one-off small project,but for a large product Atlas has given us a ton more control,稳定与信任。

12 up亚博平台怎么样votes · 18.7K views

Decision at FundsCorner 关于 Amazon SQS,哨兵,GitLab CI,松弛,Google Compute Engine,Netlify,AWS Lambda,扎帕vuex,Vuetify,Vue.js,Swagger UI,MongoDB,瓶,蟒蛇

耶亚巴拉吉的化身
CTO at 财务总监 ·

At FundsCorner,we are on a mission to enable fast accessible credit to India's Kirana Stores.We are an early stage startup with an ultra small Engineering team.我们迄今为止所做的所有技术决策都是基于我们的核心理念:“快速制造可用产品”。

Based on the above fundamentals,we chose蟒蛇as our base language for all our APIs and micro-services.It is ultra easy to start with,yet provides great libraries even for the most complex of use cases.我们的整个后端堆栈运行在蟒蛇我们不能对它更满意!如果您希望将API部署为无服务器的,Python provides one of the least cold start times.

We build our APIs with.对于后端数据库,our natural choice wasMongoDB.It frees up our time from complex database specifications - we instead use our time in doing sensible data modelling & once we finalize the data model,we integrate it into Flask usingSwagger UI.Mongo支持复杂的查询,通过聚合框架剔除困难数据,我们甚至构建了一个名为“Poetry”的内部框架。用于聚合查询。

我们的网络应用程序建立在Vue.js,Vuetifyand武克斯.Initially we debated a lot around choosingVue.js或反应,但最终还是解决了Vue.js,主要是因为使用方便,支持Vue的快速开发周期和强大的库和实用程序集。

你根本不能出错Vue.js.很好的文件,the library is ultra compact & is blazing fast.选择Vue.js是做出的关键决定之一,which enabled us to launch our web app in under a month (which otherwise would have taken 3 months easily).对于那些想要大牌的人,Adobe,阿里巴巴和Gitlab也在使用Vue。

通过选择Vuetify,we saved thousands of person hours in designing the CSS files.Vuetify包含所有关键的材料组件,设计一个流畅的用户体验,它只是工作!这是一个很棒的框架。我们在Fundscorner的所有人现在都是Vue.jsandVuetify.

On the infrastructure side,我们所有的API服务和后端服务都是通过Zappa.Zappamakes your life super easy by packaging everything that is required to deploy your code asAWS Lambda.We are now addicted to the single - click deploys / updates throughZappa.试试看,你会变的!

也,如果您正在使用Zappa,您可以大大简化CI/CD管道。Do try it!It's just awesome!and...you will be astonished by the savings you have made on AWS bills at end of the month.

我们的CI/CD管道使用吉塔实验室.The documentation is very good & it enables you to go from from concept to production in minimal time frame.

We useSentry所有事故报告和解决方案。专业小贴士,they do have handlers forAWS Lambda,which made our integration super easy.

包括API在内的所有微服务都是事件驱动的。Our background micro-services are message oriented & we useAmazon SQSas our message pipe.我们有自己的内部工作流管理器来协调整个微服务。

We host our static websites on网络化.One of the cool things about网络化is the automated CI / CD on git push.你只要按一下就可以了!Again,it is super simple to use and it just works.We were dogmatic about going server less even on static web sites & you can go server less on网络化几分钟后。It's just a few clicks away.

We useGoogle Compute Engine,尤其是我们人工智能实验的谷歌愿景。

For Ops automation,我们使用Slack.Slack提供了一个超级丰富的API(通过Slack应用程序),通过它您可以为无聊的操作任务编织神奇的自动化。

12 up亚博平台怎么样votes · 8 7K views

Decision at SalesAutopilot Kft. 关于 AWS CodePipeline,Jenkins,Docker,vuex,Vuetify,Vue.js,jQuery UI,雷迪斯MongoDB,MySQL,Amazon Route 53,Amazon CloudFront,Amazon SNS,亚马逊云表,GitHub

Gykhauth的化身
CTO at SalesAutopilot Kft. ·

I'm the CTO of a marketing automation SaaS.Because of the continuously increasing load we moved to the AWSCloud.We are using more and more features of AWS:Amazon CloudWatch,亚马逊SNS,亚马逊云端,Amazon Route 53and so on.

Our main Database isMySQL但是对于数百GB的文档数据,我们使用MongoDB越来越多。我们开始使用雷迪斯for cache and other time sensitive operations.

在我们使用的前端jQuery UI+很聪明,但现在我们重构应用程序以使用Vue.js具有Vuetify.Because our app is relatively complex we need to use武克斯as well.

On the development side we useGitHubas our main repo,Docker用于本地和服务器环境,以及JenkinsandAWS CodePipeline用于持续集成。

十一 up亚博平台怎么样votes · 12.6K views

Decision at FundsCorner 关于 MongoDB Atlas,MongoDB,PostgreSQL

耶亚巴拉吉的化身
CTO at 财务总监 ·

Database is at the heart of any technology stack.难怪在深入产品构建之前,我们会花很多时间选择正确的数据库。

When we were faced with the question of what database to choose,we set the following criteria: The database must(1) Have a very high transaction throughput.We wanted to err on the side of "reads" but not on the "writes".(2) be flexible.即。具有足够的适应能力,以适应数据变化。Since we are an early-stage start-up,并不是所有的东西都是一成不变的。(3)快速和容易与(4)云本地工作。We did not want to spend our time in "ANY" infrastructure management.

基于上述情况,we pickedPostgreSQLandMongoDB进行评估。We tried a few iterations on hardening the data model with PostgreSQL,但是意识到我们可以通过松散地定义模式(只有几个基本原则是完整的)来更快地移动。

Thus we switched to MongoDB.潜水前,we validated a few core principles such as:(1) Transaction guarantee.Until 3.6,MongoDB supports Transaction guarantee at Document level.From 4.0 onwards,you can achieve transaction guarantee across multiple documents.

(2)主键和索引:与任何RDBMS一样,MongoDB支持唯一的键和索引,以确保数据完整性和搜索能力

(3)跨数据集联接数据的能力:MongoDB提供了一个超级丰富的聚合框架,允许用户过滤和分组数据。

(4) Concurrency handling: MongoDB offers specific operations (such as findOneAndUpdate),which when coupled with Optimistic Locking,can be used to achieve concurrency.

首先,MongoDB提供了一个完整的免费云数据库服务-MongoDB Atlas.This kind of sealed the deal for us.

回头看,选择MongoDB和MongoDB Atlas是我们做出的最好的决定之一,它为我们提供了很好的服务。My only gripe is that there must be a way to scale-up or scale-down the Atlas configuration at different parts of the day with minimal downtime.

10 up亚博平台怎么样votes · 评论 · 10.5K views

Decision 在EnjoyHQ 关于 PostgreSQL,MongoDB,RethinkDB

卢卡斯科雷基的化身
首席技术官兼联合创始人 at NomNom ·

我们最初选择RethinkDB由于无模式文档存储功能,以及比MongoDB最后,it didn't work out quite as we expected: there's plenty of scalability issues,it's near impossible to run analytical workloads and small community makes working with Rethink a challenge.We're in process of migrating all our workloads toPostgreSQLand hopefully,we will be able to decommission our RethinkDB deployment soon.

10 up亚博平台怎么样votes · 2.7K views

Decision at Kokoen GmbH 关于 ExpressJS,Node.jsJavaScript,MongoDB,去吧,MySQL,LaravelPHP

阿斯肯尼的化身
首席执行官 at 科科有限公司 ·

回到2017年初,我们决定创建一个基于Web的工具,用于客户网站的SEO网页分析。We had over 2.000 websites to analyze,so we had to perform thousands of requests to get every single page from those websites,process the information and save the big amounts of data somewhere.

Very soon we realized that the initial chosen script language and database,PHP,LaravelandMySQL,无法有效地处理这样的任务。

到那时,我们正在用一种我们最近才知道的语言为其他项目做一些实验,,所以我们决定尝试一下,用它给爬虫程序编码。太棒了,we could process much more data with way less CPU power and in less time.By using the concurrency abilites that the language has to offers,我们还可以在更短的时间内完成更多的HTTP请求。

Unfortunately,I have no comparison numbers to show about the performance differences betweenandPHP因为差异从一开始就很明显,我们觉得没有必要做进一步的比较测试,也没有记录下来。We just switched fully to.

还有一个问题:尽管我们正在生成大量数据,MySQLwas performing very well,但是,随着我们向软件添加越来越多的功能,随着这些功能越来越不同的数据类型需要保存,对于数据库架构师来说,正确地构造数据库上的所有内容是一场噩梦,所以很明显我们接下来要做的是:切换到NoSQL数据库。所以我们切换到MongoDB,这也太棒了:我们花了几乎零时间思考如何构建数据库,性能也似乎更好,but again,I have no comparison numbers to show due to the lack of time.

我们还决定将网站从PHPandLaravelJavaScriptandNode.jsandExpressJSsince working with the JSON Data that we were saving now in the Database would be easier.

截至目前,we don't only use the tool intern but we also opened it for everyone to use for free:https://tool-seo.com网站

9 up亚博平台怎么样votes · 22.7K views

Decision at ChecklyHQ 关于 亚马逊dynamodb,MongoDB,Node.jsHeroku,PostgreSQL

提姆·诺莱的化身
创始人,Engineer & Dishwasher at Checkly ·

PostgreSQL 赫鲁库 Node.js MongoDB Amazon DynamoDB

当我开始检查建筑时,one of the first things on the agenda was how to actually structure ourSaaS database model: think accounts,用户,订阅等奇怪的,there is not a lot of information on this on the "blogopshere" (cringe...).After research and some false starts with MongoDB and Amazon DynamoDB we ended up with PostgreSQL and a schema consisting of just four tables that form the backbone of all generic "Saasy" stuff almost any B2B SaaS bumps into.

简言之:CPostgreSQL 赫鲁库 Node.js MongoDB Amazon DynamoDB

当我开始检查建筑时,one of the first things on the agenda was how to actually structure ourSaaS database model: think accounts,用户,订阅等奇怪的,there is not a lot of information on this on the "blogopshere" (cringe...).After research and some false starts with MongoDB and Amazon DynamoDB we ended up with PostgreSQL and a schema consisting of just four tables that form the backbone of all generic "Saasy" stuff almost any B2B SaaS bumps into.

In a nutshell:

  • We use Postgres on Heroku.
  • We use a "one database,on schema" approach for partitioning customer data.
  • We use an账户,会员资格and用户table to create a many-to-many relation between users and accounts.
  • 我们完全脱钩价格,payments and the exact ingredients for a customer's plan.

All the details including a database schema diagram are in the linked blog post.

up亚博平台怎么样votes · 34.9K views

Decision at updown.io 关于 updown.io,MongoDB,栏杆

Avatar of adrienjarthon

I chose栏杆andMongoDB建造上下because it's very convenient and already in my skill set.这样可以节省开发和研究时间。The schema-less design ofMongoDBallows for easier migrations and the replicaset feature for easier ops.

up亚博平台怎么样votes · 5.1K views